#include
main()
{
int a,b,c;
c=0;
printf("输入两个数字求出它们之间奇数的和.请输入第一个: ");
scanf("%d",&a);
printf("输入第二个:");
scanf("%d",&b);
if(a{
if(a%2==0)a++;
for(;a<=b;a+=2)
c=c+a;
}
else
{
if(b%2==0)b++;
for(;b<=a;b+=2)
c=c+b;
}
printf("奇数和为:%d",c);
}
请指教,谢谢!
--------------------------------------------------------------------------------
#include
#include
int main(int argc, char *argv[])
{
int a, b, c;
scanf("%d%d", &a, &b);
if(a>b) {a^=b; b^=a; a^=b;}
if(a%2!=1) ++a;
if(b%2!=1) --b;
if(a>b)
c=0;
else
c=(a+b)*(((b-a)>>1) + 1)>>1;
printf("%d", c);
system("PAUSE");
return 0;
}
--------------------------------------------------------------------------------
既然都用>>做除法了,干嘛不用&做取余数... if(a&1!=1)好了
--------------------------------------------------------------------------------
你这个办法有点浪费时间。
#include "stdio.h"
init_ab(int *a,int *b)
{
int p;
if(a>b)
{
p=*a;
*a=*b;
*b=p;
}
*a=(*a%2==0)?(*a+1):*a;
*b=(*b%2==0)?(*b-1):*b;
}
int cal(int a,int b)
{
int n=0;
n=(b-a)/2+1;
return(n*a+n*(n-1)); /*µÈ²îÊýÁÐÇóºÍ¹«Ê½*/
}
main()
{
int a=2,b=10;
init_ab(&a,&b);
printf("%d",cal(a,b));
getch();
}
你这样求奇数?
在打印奇数的序列前加SUM=SUM+A;
最后打印SUM