C语言--输入多组数据求和问题

输入数据有多组,每组有多个,每组一行,每行第一个数n是个数,后面跟着n个数,以输入0为结束,输出每行的和。如:
Sample Input
4 1 2 3 4
5 1 2 3 4 5
0
Sample Output
10
15
Source
请高手帮忙!!!
注意:请一定严格按照我说的格式输入输出,谢谢!!!

第1个回答  2009-12-29
楼主注意素质哈,不要拿了程序不给分哈

楼主加分

想了一会,貌似只能拿链表做
#include <stdio.h>
#include <stdlib.h>

struct link_list //负责储存每次的输入的数据
{
int a;
link_list *next;
};
struct link_s //负责储存每一行的和
{
int s;
link_s *next;
};
int sum(int n,link_list *tail);
struct link_list *build(int n);//建立链表
void put_link_s(link_s *tail);
void main()
{
int n,count=0;

link_list *head;
link_s *Head,*tail,*new_s;
Head=tail=NULL;
printf("Sample Input \n");
while (1)
{
scanf("%d",&n);
if(n==0)//当输入为零时,循环终止
break;
head=build(n);
new_s=new link_s;
new_s->s=sum(n,head);
new_s->next=NULL;
if (tail==NULL)
{
Head=tail=new_s;
}
else
{
tail->next=new_s;
tail=new_s;
}
}
printf("Sample Output \n");
put_link_s(Head);
printf("Source\n");
}
int sum(int n,link_list *tail)
{
int s=0;

while(tail!=NULL)
{

s+=tail->a;

tail=tail->next;
}

return s;
}
struct link_list *build(int n)
{
link_list *head,*tail,*list;
int i;
head=tail=NULL;
for(i=0;i<n;i++)
{
list=new link_list;
scanf("%d",&list->a);
list->next=NULL;
if(tail==NULL)
tail=head=list;
else
{
tail->next=list;
tail=list;
}
}
return head;
}
void put_link_s(link_s *tail)
{

while(tail!=NULL)
{
printf("%d\n",tail->s);
tail=tail->next;
}

}
第2个回答  2009-12-24
//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int i,a,b,sum;
scanf("%d",&a);
while (a)
{
sum=0;
for (i = 0; i<a; i++) {
scanf("%d",&b);
sum+=b;
}
printf("%d\n",sum);
scanf("%d",&a);
}
puts("Source");
return 0;
}
//---------------------------------------------------------------------------本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网