
#include<stdio.h>
int main() {
char str[1000];
int i, count = 0, sum = 0, flag;
gets(str);//输入字符串
for (i = 0; str[i] != '\0'; i++) //判断是否为数字
{
if (str[i] >= '0' && str[i] <= '9')
{
count = count * 10 + (str[i] - '0');
}
else if(str[i]=='-')//用flag判断是否为负数
{
flag=-1;
}
else
{
if (flag==-1)//判定为负数
{
count=-count;
flag=1;
}
sum = sum + count;//遇到非数字的先求和
count = 0;
if(str[i]>='a'&&str[i]<='z')//题目固定5个字符串,避免字符串内含有数字
i=i+4;
}
}
if (flag==-1)//最后一组数据,判断是否为负数
{
count=-count;
flag=1;
}
sum = sum + count;//最后求和
printf("%d\n", sum);
return 0;
}
本文详细描述了一个C语言程序,用于从用户输入的字符串中识别并计算数字(包括正负数),最后输出总和。程序通过遍历字符串,判断字符是否为数字或负号,并正确处理特殊情况。
8566

被折叠的 条评论
为什么被折叠?



