C语言求助 求1到100的和

 我来答
救济家
2020-09-24 · TA获得超过3737个赞
知道小有建树答主
回答量:1454
采纳率:100%
帮助的人:45.4万
展开全部
清楚算法就可以很快写出:

(1)只需输入2个变量n和sum,且sum=n+sum.

(2)确定n的范围为n<=100

(3)循环体为

for(n=1;n<=100;n++)

sum+=n;

(4)根据C语言编辑规则写出程序

用for循环求:

#include

int main(void)

{

int n,sum=0;

for(n=1;n<=100;n++)

sum+=n;

printf("1+2+...+100=%d\n",sum)

return 0;

}

程序运行结果:

1+2+...+100=5050



扩展资料:

for( i=1; i<=100; i++ ) sum=sum+i;
先给i赋初值1,判断i是否小于等于100,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>100时,结束循环。相当于:

i=1;

while(i<=100){

sum=sum+i;

i++;

}

对于for循环中语句的一般形式,就是如下的while循环形式:
表达式1;
while(表达式2){
语句
表达式3;
}
使用for语句应该注意:
1) for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但分号(;)不能缺省。
2) 省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值。
3) 省略了“表达式2(循环条件)”,则不做其它处理时便成为死循环。例如:

for( i=1; ; i++ ) sum=sum+i;
相当于:i=1;

while(1){

sum=sum+i;

i++;

}
4) 省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。例如:

for( i=1; i<=100 ; ){

sum=sum+i;

i++;

}

5) 省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。例如:

for( ; i<=100 ; ){

sum=sum+i;

i++;

}
相当于:

while(i<=100)

{sum=sum+i;

i++;

}
6) 3个表达式都可以省略。例如:
for( ; ; ) 语句
相当于:
while(1) 语句
7) 表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。例如:

for( sum=0; i<=100; i++ ) sum=sum+i;
8) 表达式1和表达式3可以是一个简单表达式也可以是逗号表达式。

for( sum=0,i=1; i<=100; i++ ) sum=sum+i;
或:

for( i=0,j=100; i<=100; i++,j-- ) k=i+j;
9) 表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。例如:

for( i=0; (c=getchar())!=’\n’; i+=c );
又如:

for( ; (c=getchar())!=’\n’ ; )

printf("%c",c);
匿名用户
2012-11-26
展开全部
#include <stdio.h>
void main()
{
int a,b=100,count=0;
for(a=0;a<=100;a++)
{
count+=b+a; //a是从0自增到100
b-=1; //b是从100自减到0
}
printf("%d\n",count/2); //所以相当于加了两次0到100,要除以2
}

简化版:
#include <stdio.h>
void main()
{
int a,b=0;
for(a=0;a<=100;a++)
{
count+=a; //a是从0自增到100
}
printf("%d\n",b);
}

现场写的,可能运行会有问题……我没装VC,你试试吧,不行我再改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr_Yang2012
推荐于2016-05-19 · TA获得超过1647个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:489万
展开全部
这个程序的难度其实不大,最优的解法是使用等差数列的求和公式来进行计算,这样计算速度会很快,对于从1加到100这样的问题是最佳的选择。但是使用这种公式计算会存在一个问题,就是如果对任意整数n来说,在计算的中间过程可能会超过整形的范围。此时需要对n的奇偶性进行判断判断,并先对公式中的偶数项除2。
样例代码(1加到100):
#include <stdio.h>
int main(void)
{
int n;
int ans;

scanf("%d", &n);

ans = (n + 1) * n / 2;

printf("%d\n", ans);

return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吼人地味点半堡0q
2012-11-26
知道答主
回答量:2
采纳率:0%
帮助的人:2.8万
展开全部
main()
{
int i,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("%d\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jimmy19871117
2012-11-26 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:131万
展开全部
代码如下:

#include <stdio.h>

int main()
{
printf("%d\n", 100 * (1 + 100) / 2);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式