已知一个正整数序列,个数未知,但至少有一个元素,你的任务是建立一个单链表,并使用该链表存储这个正整数序列,然后统计这个序列中元素的最大值与最小值,计算序列全部元素之和。正整数的输入用-1作为结束标志,注意-1不算这个正整数序列中的元素(不要统计-1)。
Input
一个正整数序列,正整数序列元素的个数未知,但以输入“-1”结束,输入“-1”前至少输入一个正整数。序列中的元素范围在1—999999999之间。
Output
三个正整数,即最大值、最小值、所有元素之和。
数据最多的测试用例节点数在1000这个数量级,所有整数可以用int型存储。
请注意输入输出格式。
Sample Input Copy
1 4 99 21 50 61 32 4 -1
Sample Output Copy
The maximum,minmum and the total are:99 1 272
以下是自己写的程序,在devc上运行也没问题,但放上oj就显示编译错误了
想请问是什么问题,麻烦各位康康!谢谢~~
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
struct node{
int value;
node* next;
};
int main(){
node*head=(node*)malloc(sizeof(node));
node*flag=head;
scanf("%d",&flag->value);
int i=0,max,min;
if(i==0){
min=flag->value;
i++;
}
while(flag->value!=-1){
flag->next=(node*)malloc(sizeof(node));
flag=flag->next;
scanf("%d",&flag->value);
if(flag->value>max&&flag->value!=-1)
{
max=flag->value;
}
else if(flag->value<min&&flag->value!=-1)
{
min=flag->value;
}
}
flag->next=NULL;
flag=head;
int sum=0;
while(flag!=NULL)
{
sum+=flag->value;
flag=flag->next;
}
printf("The maximum,minmum and the total are:%d %d %d",max,min,sum+1);
getchar();
return 0;
}