您的位置:首页 >使用函数求解n个数中的最大值、最小值和平均值(不使用数组)
发布于2025-02-02 阅读(0)
扫一扫,手机访问

#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. 哪里声明maxc了?
2. 你的是C语言,它是不支持在代码块的行中间声明变量的。
3. 逻辑上看不明白要干什么。
提供一个如下:
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
int n,x,max,min,i;
scanf("%d%d",&n,&x);
for(max=min=x,i=1;i scanf("%d",&x); if(max if(min>x) min=x; } printf("The maximum number is %d.\nThe minimum number is %d.\n",max,min); } 就是从大到小排序吧... 【回答补充】 #include "stdio.h" #define N 4 void sort(int x[],int n) { int i,j,p; for(i=0;i for(j=0;j { if(x[j] { p=x[j]; x[j]=x[j+1]; x[j+1]=p; } } } void main() { int a[N],i; for(i=0;i scanf("%d",&a[i]); sort(a,N); for(i=0;i printf("%d ",a[i]); }c语言组成最大数
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9