C 输出两数和

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:13:12
#include<stdio.h>
main()
{
int s=0,i,n,m;
scanf("n=%d,m=%d",&n,&m);
if (n>m)
for(i=m;i<n;i++)
s=s+i;
printf("%d",s);
else
for(i=n;i<m;i++)
s=s+i;
printf("%d",s);

}

题目是:输入两个正整数n,m,输出两数中所有数的和。

我为什么错了?
考虑后数小于前数的情况

把SCANF那句改好了,弄出的是死循环么

两数中,头尾都不含吧

直接编译运行

#include<stdio.h>
main()
{
int sum=0,i=0;
int max,min,a,b,j;
printf("Input two numbers split with SPACE!\n");
scanf("%d %d",&a,&b);
max=a>b? a:b;
min=a<b? a:b;
j=max-min;
sum=min;
if(a==b) {
sum=0;
printf("Sum of the numbers between %d and %d is: %d",a,b,sum);
} else {
for(i=0;i<j-1;i++) {
min++;
sum+=min;
}
printf("Sum of the numbers between %d and %d is: %d",a,b,sum);
}

getch();
}

scanf("n=%d,m=%d",&n,&m);
错了,应该修改为:
printf("n,m=?");
scanf("%d%d",&n,&m);

后面的if语句还应该加{},否则会错误,完成程序修改为:

#include<stdio.h>
main()
{
int s=0,i,n,m;
printf("n,m=?");
scanf("%d%d",&n,&m);
if (n>m) {i=n;n=m;m=i;}/*交换n和m,使得始终是m>=n*