
谢谢你的代码,可是我是新手,for()循环里的东西我看不太懂,可以分开写一下吗?
#include<stdio.h>main(){longsum=0,n;charc;for(c=getchar();c!='\n';sum+=n){n=0;for(;c>...
#include<stdio.h>
main()
{
long sum=0,n;
char c;
for(c=getchar();c!='\n';sum+=n)
{
n=0;
for(;c>='0'&&c<='9';n=n*10+c-'0',c=getchar());
if(c=='+')
c=getchar();
}
printf("%d\n",sum);
} 展开
main()
{
long sum=0,n;
char c;
for(c=getchar();c!='\n';sum+=n)
{
n=0;
for(;c>='0'&&c<='9';n=n*10+c-'0',c=getchar());
if(c=='+')
c=getchar();
}
printf("%d\n",sum);
} 展开
展开全部
总则:for(语句1;语句2;语句3)执行顺序是:首先执行一次语句1,然后判断是否满足条件(由语句2给出),若满足则进入循环体
为方便叙述,把lz给出的代码两个for循环称为外for和内for。
外for的语句1读入一个字符,语句2判断它是不是回车,不是回车的话进入循环体,最后一个语句是求和
循环体内首先初始化n=0,内for循环语句1为空(因为已经在外for读入了一个字符),语句2判断读入的字符是不是数字,语句3执行(把数字加到n上,读入下一个字符)两个操作,内for的循环体为空
内for循环结束后的效果是n存储了一个数
if语句作用是忽略输入中的+号
最后输出sum
从整个程序来看的话这个是完成“读入一个加法表达式并输出其值”的功能
为方便叙述,把lz给出的代码两个for循环称为外for和内for。
外for的语句1读入一个字符,语句2判断它是不是回车,不是回车的话进入循环体,最后一个语句是求和
循环体内首先初始化n=0,内for循环语句1为空(因为已经在外for读入了一个字符),语句2判断读入的字符是不是数字,语句3执行(把数字加到n上,读入下一个字符)两个操作,内for的循环体为空
内for循环结束后的效果是n存储了一个数
if语句作用是忽略输入中的+号
最后输出sum
从整个程序来看的话这个是完成“读入一个加法表达式并输出其值”的功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于for循环,for (A;B;C),先执行A然后执行B(条件B为假跳出循环),
然后执行循环体, 再C,再B(条件B为假跳出循环),
执行循环体, 再C, 再B(条件B为假跳出循环),
执行循环体, 再C, 再B(条件B为假跳出循环)。。。
基本无法分开写的。
然后执行循环体, 再C,再B(条件B为假跳出循环),
执行循环体, 再C, 再B(条件B为假跳出循环),
执行循环体, 再C, 再B(条件B为假跳出循环)。。。
基本无法分开写的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main()
{
long sum=0,n;
char c;
c=getchar(); //读第一个字符
while(c!='\n') //一行未完时循环
{
n=0; //新数字初始化
if(c=='+')c=getchar(); //若是‘+’不算,再读一个
while(c>='0'&&c<='9') //读一个完整的多位数
{
n=n*10+c-'0'; //把多位数字拼起来
c=getchar(); //读下一位数
}
sum+=n; //一个数字完了,累加之
}
printf("%d\n",sum); //一行上所有数字已完,输出总和
}
main()
{
long sum=0,n;
char c;
c=getchar(); //读第一个字符
while(c!='\n') //一行未完时循环
{
n=0; //新数字初始化
if(c=='+')c=getchar(); //若是‘+’不算,再读一个
while(c>='0'&&c<='9') //读一个完整的多位数
{
n=n*10+c-'0'; //把多位数字拼起来
c=getchar(); //读下一位数
}
sum+=n; //一个数字完了,累加之
}
printf("%d\n",sum); //一行上所有数字已完,输出总和
}
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询