C语言问题

输入格式

每行的第一个数N,表示本行后面有N个数。
如果N=0时,表示输入结束,且这一行不要计算。

输出

对于每一行数据需要在相应的行输出和。

样例输入
4 1 2 3 4
5 1 2 3 4 5
0
样例输出
10
15

第1个回答  推荐于2017-12-16

按照你的要求编写的C语言程序如下:

#include<stdio.h>
int main()
{
 int N,i,j;
 scanf("%d",&N);
 while(N!=0){
  int sum=0;
  
  for(i=0;i<N;i++){
   scanf("%d",&j);
   sum=sum+j;
  }
  printf("%d\n",sum);
  scanf("%d",&N);
 }
 return 0;
}

运行结果:

输入:4 1 2 3 4

输出:10

输入:5 1 2 3 4 5

输出:15

输入:0

追问

编译错误

追答

我用Visual Studio2008编译没问题啊,能把错误贴出来吗?

本回答被提问者和网友采纳
第2个回答  2014-01-27
// file "sum.cpp"
// Copyright 2014 (C) usoft.zhanghb
// http://zhidao.baidu.com/question/1753958460252458628.html
#include <iostream>
#include <vector>

int main(int argc, char *argv[])
{
    std::vector<int> ivec;

    int k;
    while (std::cin >> k && k > 0)
    {
        int j, sum = 0;
        while (k--)
        {
            std::cin >> j;
            sum += j;
        }
        ivec.push_back(sum);
    }

    for (size_t i=0; i < ivec.size(); i++)
    {
        std::cout << ivec[i] << std::endl;
    }

    return 0;
}

# 编译命令
cl /EHsc sum.cpp

【认真回答,呈请采纳】

第3个回答  2019-03-12
#include <stdio.h>
int main() {
int N;
int i;
while (scanf_s("%d",&N) && N != 0) {
int sum = 0;
while (N > 0) {
scanf_s("%d",&i);
sum = sum + i;
N--;
}
printf("%d\n",sum);
}
return 0;
}

相似回答