C语言,求n个数得的最大值,最小值,平均值,用函数,不要用数组

如题所述

#include "stdio.h"

struct number
{
float value;//值
struct number *next;//指向后继
};

struct number *head = NULL;//头指针
struct number *p1;//活动指针
struct number *p2;//尾指针

float max,min,sum,count;//最大值、最小值、和、数量

//输入数值
void input()
{
for(;;)
{
//申请内存空间并赋值
p1 = (struct number*)malloc(sizeof(struct number));
scanf("%f",&p1->value);
p1->next = NULL;

//判断是否等于-1
if(p1->value == -1)
{
free(p1);
return;
}

//判断头指针是否为空
if(head == NULL)
head = p1;
else
p2->next = p1;
p2 = p1;
}
}

//求最大值、最小值、和、数量
void maxMin()
{
//初始化三个值
p1 = head;
max = min = p1->value;
sum = count = 0;

while(p1 != NULL)
{
//找最大值
if(p1->value > max)
max = p1->value;

//找最小值
if(p1->value < min)
min = p1->value;

sum += p1->value;//求和
count++;//数量
p1 = p1->next;
}
}

//输出所有值
void print()
{
p1 = head;
while(p1 != NULL)
{
printf("%g ",p1->value);
p1 = p1->next;
}
printf("\n");
}

int main()
{
printf("请连续输入n个整数,输入-1结束\n");
input();
printf("**************\n");
maxMin();
printf("最大值 = %g\n",max);
printf("最小值 = %g\n",min);
printf("平均值 = %g\n",sum/count);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-23
n个数的求最大最小还不用数组来找,你的依据是什么,如果你的数成千上百,你是打算写n个变量名再一个个找出来吗?本回答被网友采纳
相似回答