数字求和——链表

来源:互联网 发布:中国电信网络测速工具 编辑:程序博客网 时间:2024/05/23 20:45
总时间限制: 
3000ms 
内存限制: 
65536kB
描述
给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?
输入
输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
输出
输出一行,给出一个正整数,是5个数中小于a的数的和。
样例输入
10 1 2 3 4 11
样例输出

10

用链表的时候就是生成一个链表,然后再从头遍历就可以。

#include<stdio.h>
#include<stdlib.h>
struct Dat
{
int dat;
struct Dat *next;
};
#define len sizeof(struct Dat)
int main()
{
struct Dat *p,*p1,*t,*head;
int num;
while(scanf("%d",&num)!=EOF)
{
head=NULL;
int i;
for(i=0;i<5;i++)
{
p1=(struct Dat *)malloc(sizeof(len));
scanf("%d",&p1->dat);
if(head==NULL)
head=p1;
else
p->next=p1;
p=p1;
}
p->next=NULL;
p1=head;
int sum=0;
while(p1!=NULL)
{
if(num>p1->dat)
sum=sum+p1->dat;
p1=p1->next;
}
printf("%d\n",sum);
free(p1);
}
return 0;
}

0 0