C++整数求和问题,怎样判断输入的一组整数有几个数?(c++新手求教啊)
输入的第一行有一个整数n,表示测试数据的组数。接下来有n行,每行有若干个整数a1,a2,…,am,(-10000<=a1,a2,…,am,<=10000,m<=1000)...
输入的第一行有一个整数n,表示测试数据的组数。接下来有n行,每行有若干个整数a1,a2,…,am,(-10000<=a1,a2,…,am, <=10000,m<=1000)。
对于每组测试数据,先输出“Case #:”(#为序号,从1开始),然后空一格后输出该组中整数的个数,后跟逗号,再空一格后输出这些数据的和。
例如:
输入:
2
20 1 8 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 5
1 –2
输出:
Case 1: 20, 200
Case 2: 2, -1 展开
对于每组测试数据,先输出“Case #:”(#为序号,从1开始),然后空一格后输出该组中整数的个数,后跟逗号,再空一格后输出这些数据的和。
例如:
输入:
2
20 1 8 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 5
1 –2
输出:
Case 1: 20, 200
Case 2: 2, -1 展开
2个回答
展开全部
#include<stdio.h>
void main(void)
{
char a[500000];
int n = 0; //测试数据组数
scanf("%d",&n);
gets(a); //消灭scanf留下的残渣
for(int i = 1; i <= n; i ++)
{
gets(a);
int j = 0; //s的下标,初始位0
int tem = 0; //记录一个数的值
bool b = false; //是否有新的数
bool negative = false; //是否是负数
int count = 0; //数的个数
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)
{
count ++;
if(negative == false)
sum += tem;
else
sum += -tem;
}
}
//输出该case
printf("case %d: %d, %d\n",i,count,sum);
}
}
void main(void)
{
char a[500000];
int n = 0; //测试数据组数
scanf("%d",&n);
gets(a); //消灭scanf留下的残渣
for(int i = 1; i <= n; i ++)
{
gets(a);
int j = 0; //s的下标,初始位0
int tem = 0; //记录一个数的值
bool b = false; //是否有新的数
bool negative = false; //是否是负数
int count = 0; //数的个数
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)
{
count ++;
if(negative == false)
sum += tem;
else
sum += -tem;
}
}
//输出该case
printf("case %d: %d, %d\n",i,count,sum);
}
}
参考资料: //
展开全部
#include <stdio.h>
main()
{int N,i=0,in,s[1001],n[1001],j=0;
scanf("%d",&N);
while(i<N)
{scanf("%d",&in);
s[i]+=in;n[i]++;
if(getchar()==10)i++;
}
for(i=0;i<N;i++)printf("Case %d:%d,%d\n",i+1,n[i],s[i]);
}
main()
{int N,i=0,in,s[1001],n[1001],j=0;
scanf("%d",&N);
while(i<N)
{scanf("%d",&in);
s[i]+=in;n[i]++;
if(getchar()==10)i++;
}
for(i=0;i<N;i++)printf("Case %d:%d,%d\n",i+1,n[i],s[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询