C语言小问题,高手请进!!
发布网友
发布时间:2023-01-16 15:46
我来回答
共3个回答
热心网友
时间:2023-11-17 02:38
#include <stdio.h>
main()
{
int sum=0,a;
char ch;
while ((ch=getchar())!='\n')
{
if ('0'<=ch&&ch<='9')
{
a=ch-'0';
sum=sum+a;
}//这里少了一对大括号
}
printf("%d",sum);
}
解释:不加这对大括号时不论读入字符是否满足if ('0'<=ch&&ch<='9') 都会执行sum=sum+a;语句,这时的a的值为上一次a=ch-'0'; 的结果
加上大括号后就能实现累加字符串中的数字
样例:568igh98
如果不加大括号,则结果sum=5+6+8+8+8+8+9+8=60
加上大括号后,sum=5+6+8+9+8=36
建议:以后写程序要写成锯齿状缩进格式(就像我写的那样),这样容易看出各个语句之间的关系,会降低出错率,也方便调试改错
热心网友
时间:2023-11-17 02:38
字符串不是用加号来实现累加的,是用strcpy(a,b)这个函数,意思就是将b字符串加在a字符串的后面.这个函数封闭在string.h中
例子:
#include<string.h>
void main()
{
char a=r;
char b=t;
char c=strcpy(a,b)
printf("%c",c)
}
这就得到了rt的答案
热心网友
时间:2023-11-17 02:39
#include <stdio.h>
main()
{int sum=0,a;
char ch;
while ((ch=getchar())!='\n')
{if ('0'<=ch&&ch<='9')
{a=ch-'0';
sum=sum+a;}}
printf("%d",sum);
}
少了一对括号