初学人请C高手请教!!求任意两个数之间奇数的和!
发布网友
发布时间:2023-11-18 04:28
我来回答
共1个回答
热心网友
时间:2024-11-19 10:41
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
环境:VC++6.0;win2000;
#include <stdio.h>
void main()
{
int num1,num2,a,sum;
scanf("%d",&num1);
scanf("%d",&num2);
if(num1>num2&&num1%2!=0)
{
for(a=num1;a>=num2;a-=2)
printf("%d \n",a);
}
if(num1>num2&&num1%2==0)
{
for(a=num1-1;a>=num2;a-=2)
printf("%d \n",a);
}
if(num2>num1&&num2%2==0)
{
for(a=num2-1;a>=num1;a-=2)
printf("%d \n",a);
}
if(num2>num1&&num2%2!=0)
{
for(a=num2;a>=num1;a-=2)
printf("%d \n",a);
}
}
这里只能排出任意两个数之间奇数的序列,但是求和怎么求,我就不懂了,请高手指教一二,不胜感谢!!!
解析:
#include<stdio.h>
main()
{
int a,b,c;
c=0;
printf("输入两个数字求出它们之间奇数的和.请输入第一个: ");
scanf("%d",&a);
printf("输入第二个:");
scanf("%d",&b);
if(a<b)
{
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 <stdio.h>
#include <stdlib.h>
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();
}