C语言编程,输入两个正整数M和N(M<N),计算M和N之间的所有整数和

如题所述

一、基本方法:

1、输入M和N;

2、遍历从M到N的所有整数;

3、每个累加;

4、输出结果。

参考代码:

#include <stdio.h>
int main()
{
    int M,N,n,s=0;
    scanf("%d%d",&M,&N);//输入
    for(n = M; n <= N; n ++)//遍历
        s+=n;//累加每个整数。
    printf("%d\n",s);//输出结果。
    return 0;
}

二、利用等差数列求和公式。

从M到N的所有整数为等差数列,公差为1,所以可以利用求和公式直接获得结果。


#include <stdio.h>
int main()
{
    int M,N,n,s=0;
    scanf("%d%d",&M,&N);//输入
    s=(M+N)*(N-M+1)/2;//等差数列求和。
    printf("%d\n",s);//输出结果。
    return 0;
}

三、方法对比:

第一种适用于C语言练习,可以涉及更多知识点。

第二种方法效率更高,适用于实际应用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-14
main()

   int m,n,i,s=0;
   
   printf("%d%d",&m,&n);
   
   /* 如果m大于n,两数交换*/
   if( m>n )
    { m=m+n;
      n-m-n;
      m=m-n;
     }
     
   /* 从m到n的所有数相加 */  
   for ( i=m;i<=n;i++ )   
      s+=i;
      
   printf("结果是:%d\n",s);
}

第2个回答  2013-06-16
代码如下,不明白追问!
#include<stdio.h>
int main(void)
{
int i, M, N;
long int sum = 0;
printf("请输入两个正整数M、N:\n");
scanf("%d %d",&M,&M);
printf("你输入的M = %d N = %d\n", M, N);
if(M > N)
{
i = M;
M = N;
N = i;
}
for(i=M+1; i <N; i++)
{
sum += i;
}
printf("%d和%d之间的所有整数和等于 %ld\n", M, N, sum);
}
第3个回答  2013-06-16
#include<stdio.h>
int fun(int a[])
{
int sum=a[0], average,i;
for(i=a[0];i<a[1];i++)
{
sum+=a[0]+1;
a[0]=a[0]+1;
}
printf("总和为:%d", sum);
}

int main()
{
int a[2], i;
printf("输入两个数:");
for (i = 0; i < 2; i++)
scanf("%d", &a[i]);
fun(a);
}
我用的调用函数输出,祝你愉快!
第4个回答  2013-06-16
#include<stdio.h>
int main(void)
{
int m = 0;
int n = 0;
int i = 0;
int sum = 0;

printf("Enter two numbers:");
scanf("%d %d",&m,&n);

if(m < n)
{
for(i = m; i <= n; i++)
{
sum += i;
}

printf("Sum is %d",sum);
}
else
{
printf("Enter Error");
}

return 0;

}本回答被提问者采纳
相似回答