求以下C语言源程序:C语言编程,随意输入一串整形数字(个数未知),用空格隔开,然后输入数组,再把所有数字求和。如输入1 2 3,输出6;输入0 0 0 0 1 2,输出3.(0必须作为一个数字输入数组并且进行计算)。
第1个回答 2011-03-28
#include<stdio.h>
void main(void)
{
char a[1000];
gets(a);
int j = 0; //s的下标,初始位0
int tem = 0; //记录一个数的值
bool b = false; //是否有新的数
bool negative = false; //是否是负数
int sum = 0; //数的和
while(a[j] != '\0')
{
//排除空格
while(a[j] == ' ' && a[j] != '\0')
{
j ++;
}
//读取新的数
tem = 0;
b = false;
negative = false;
while(a[j] != ' ' && a[j]!= '\0')
{
//是不是负号
if(a[j] == '-')
{
negative = true;
}
else
{
b = true;
tem = tem * 10 + (a[j] - '0');
}
j ++;
}
//如果有数,则count ++
if(b == true)
{
if(negative == false)
sum += tem;
else
sum += -tem;
}
}
//输出该case
printf("和为:%d\n", sum);
}
void main(void)
{
char a[1000];
gets(a);
int j = 0; //s的下标,初始位0
int tem = 0; //记录一个数的值
bool b = false; //是否有新的数
bool negative = false; //是否是负数
int sum = 0; //数的和
while(a[j] != '\0')
{
//排除空格
while(a[j] == ' ' && a[j] != '\0')
{
j ++;
}
//读取新的数
tem = 0;
b = false;
negative = false;
while(a[j] != ' ' && a[j]!= '\0')
{
//是不是负号
if(a[j] == '-')
{
negative = true;
}
else
{
b = true;
tem = tem * 10 + (a[j] - '0');
}
j ++;
}
//如果有数,则count ++
if(b == true)
{
if(negative == false)
sum += tem;
else
sum += -tem;
}
}
//输出该case
printf("和为:%d\n", sum);
}
第2个回答 2011-03-28
我头好痛啊