当前位置: 代码迷 >> C语言 >> [求助]输入任意个数进行累加,当输入0时结束累加并显示累加结果
  详细解决方案

[求助]输入任意个数进行累加,当输入0时结束累加并显示累加结果

热度:138   发布时间:2006-02-16 17:39:00.0
[求助]输入任意个数进行累加,当输入0时结束累加并显示累加结果
“输入任意个数进行累加,当输入0时结束累加并显示累加结果”怎么做啊。谢谢。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<malloc.h>
struct num
{
int n;
struct num *next;
};
int main()
{
struct num *p1, *p2, head;
int sum=0;
p1=p2=head=malloc(sizeof(struct num));
scanf("%d", &p1->n);
while(p1->n)
{
p2=p1;
p1=malloc(sizeof(struct num));
p2->next=p1;
scanf("%d", &p1->n);
}
p2->next=NULL;
p1=head;
while(p1)
{
sum+=p1->n;
p1=p1->next;
}
printf("%d\n", sum);
getch();
return 0;
}

[此贴子已经被作者于2006-2-16 18:02:04编辑过]


----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{ int temp=1;
int sum=0;
while(temp!=0)
{
scanf("%d",&temp);
sum=sum+temp;
}
printf("sum=%d",sum);
getch();
}
----------------解决方案--------------------------------------------------------
汗。。。。。。。。。
我给想的太复杂了。。。
竟然用了链表。。。。。。。。。


----------------解决方案--------------------------------------------------------

首先说明:不可能是任意多个数,因为这样总会有溢出的时候。
#include<stdio.h>
main()
{ long int temp;
long int sum=0;
while(scanf("%ld",&temp)==1&&temp!=0)
{
sum=sum+temp;
}
printf("sum=%ld",sum);
getch();
}


----------------解决方案--------------------------------------------------------
  相关解决方案