关于一维数组求最值问题
一维数组求最值问题,为什么求得出最大值,求不出最小值呢? 发一下代码吧 昨非 发表于 2020-10-24 12:35发一下代码吧
#include<stdio.h>
#define N 20
void main()
{
int i;//下标索引
int max,min;
int a={58,58,69,100,120,78,99,77,55,24,188,102};
double sum=a;
max=min=a;
for(i=1;i<N;i++)
{
if(a>max)
max=a;
if(a<min)
min=a;
sum +=a;
}
printf("max=%d,min=%d\n",max,min);
printf("average=%.2lf\n",sum/N);
getchar();
return 0;
} #include<stdio.h>
#define N 20
int main()
{
int i;//下标索引
int max,min;
int a={58,58,69,100,120,78,99,77,55,24,188,102};
double sum=a;
max=min=a;
for(i=1;i<N;i++)
{
if(a>max)
max=a;
if(a<min)
min=a;
sum+=a;
}
printf("max=%d,min=%d\n",max,min);
printf("average=%.2lf\n",sum/N);
getchar();
return 0;
} 胡鸣谦 发表于 2020-10-24 12:48
#include
#define N 20
int main()
a应该是a的,显示不出来,但是这样结果还是不对 1wxhlovepython 发表于 2020-10-24 12:45
#include
#define N 20
void main()
原因在于,你的数组大小是20,只赋值了前面几个值,后面的都是0 胡鸣谦 发表于 2020-10-24 12:48
#include
#define N 20
int main()
你这是个啥啊{:10_245:} 昨非 发表于 2020-10-24 13:00
原因在于,你的数组大小是20,只赋值了前面几个值,后面的都是0
我理解你的意思了,就是N=20的话,数组里面就有20个数,但是我只赋值了12个,后面就自动补零了。那如果我要定义一个不确定的数组,等待用户自行输入的话,又怎么宏定义N 的大小呢? 1wxhlovepython 发表于 2020-10-24 13:07
我理解你的意思了,就是N=20的话,数组里面就有20个数,但是我只赋值了12个,后面就自动补零了。那如果我 ...
这个可能需要动态申请内存 1wxhlovepython 发表于 2020-10-24 13:07
我理解你的意思了,就是N=20的话,数组里面就有20个数,但是我只赋值了12个,后面就自动补零了。那如果我 ...
#include<stdio.h>
#define N 20
void main()
{
int i;//下标索引
int max, min;
int a = { 58,58,69,100,120,78,99,77,55,24,188,102 };
double sum = a;
max = min = a;
for (i = 1; i < N; i++)
{
if (a > max)
max = a;
if (a < min &&a!=0) //加个这个可以得到正确答案
min = a;
sum += a;
}
printf("max=%d,min=%d\n", max, min);
printf("average=%.2lf\n", sum / N);
getchar();
} 本帖最后由 风过无痕1989 于 2020-10-24 13:48 编辑
6楼正解,你只初始化进数组12个值,还差8个呢,你再加8个在后面(或者在定义那里将20改为12),再看看
#include<stdio.h>
void main()
{
int i,N;//下标索引
printf("请确定数组大小: ");
scanf("%d",&N);
int a;
int max,min;
for(i=0;i<N;i++)
{
scanf("%d",&a);
}
double sum=a;
max=min=a;
for(i=0;i<N;i++) // 数组是从0 开始的
{
if(a>max)
max=a;
if(a<min)
min=a;
sum +=a;
}
printf("max=%d,min=%d\n",max,min);
printf("average=%.2lf\n",sum/N);
}
页:
[1]