用C來寫陣列的最大值最小值
為什么添加了min=a[0]就可以求最小值
而max沒有寫也好使
為什么在都不寫max=a[0] min=a[0] 的情況下
Max好使 min不好使
#define N 30
int main()
{
int a[N], min = 0, max = 0, i = 0, sum = 0, avg = 0;
printf("請輸入30名學生的成績:");
for (i=0; i < N; i++)
{
scanf_s("%d", &a[i]);
}
for (i = 0; i < N; i++)
{
sum += a[i];
if (min > a[i])
{
min = a[i];
}
if (max < a[i])
{
max = a[i];
}
}
avg = sum / N;
printf("最大值=%d\n", max);
printf("最小值=%d\n", min);
printf("平均值=%d\n", avg);
return 0;
}
uj5u.com熱心網友回復:
#include <stdio.h>
#define N 30
int main()
{
int a[N], min, max, i, sum , avg;
printf("請輸入%d名學生的成績\n",N);
for (i=0; i < N; i++) {
while (1) {
printf("第%d名學生的成績:",i+1);
fflush(stdout);
rewind(sstdin);
if (1==scanf_s("%d", &a[i]) {
if (0<=a[i] && a[i]<=100) break;
}
printf("輸入格式錯誤!請重新輸入\n",N);
}
}
sum=0;
min=max=a[0];
for (i = 1; i < N; i++) {
sum += a[i];
if (a[i]<min) min = a[i];
if (a[i]>max) max = a[i];
}
avg = sum / N;
printf("最大值=%d\n", max);
printf("最小值=%d\n", min);
printf("平均值=%d\n", avg);
return 0;
}
uj5u.com熱心網友回復:
第11行 rewind(sstdin);應該為rewind(stdin);uj5u.com熱心網友回復:
因為你所有的數字都大于0,所以無法比較出來uj5u.com熱心網友回復:
第12行 if (1==scanf_s("%d", &a[i]) {應該為 if (1==scanf_s("%d", &a[i])) {uj5u.com熱心網友回復:
通常最大值初始化為最小,最小值初始化為最大即可。uj5u.com熱心網友回復:
樓主可以這樣運行下代碼,看看max min avg輸出什么,找找感覺:#define N 30
int main()
{
int a[N], min, max, i, sum = 0, avg = 0;
/*printf("請輸入30名學生的成績:");
for (i=0; i < N; i++)
{
scanf_s("%d", &a[i]);
}
for (i = 0; i < N; i++)
{
sum += a[i];
if (min > a[i])
{
min = a[i];
}
if (max < a[i])
{
max = a[i];
}
}
avg = sum / N; */
printf("最大值=%d\n", max);
printf("最小值=%d\n", min);
printf("平均值=%d\n", avg);
system("pause");
return 0;
}
最大值最小值比較大小,都是有限范圍內的,值的大小也是相對的,是某一個范圍內的大小,大小值肯定在特定區域內的一個,然后去比較。比如說去比較一個幼兒園小朋友的身高,如果設定初值:max=成人的身高,最后這個max還能找得到嗎?
uj5u.com熱心網友回復:
此法不保險,且麻煩(對不同數值型別而言)。
個人意見,至少有一個資料的話,還是把最大值和最小值都初始化為第0個資料比較保險。
uj5u.com熱心網友回復:
我這樣說才能令有所領悟,授之以漁。uj5u.com熱心網友回復:
min = max = a[0];
這句加上,初始化最大值和最小值。
要么就是按照樓上所說,把最大值定義成int能表示的最大正整數,min定義成int的最小值;
但是int在不同編譯器里會有所不同,比如16位編譯器和32位,64編譯器里標識的位數不同;所以,還得考慮這個。
因此,min = max = a[0];是比較簡單的初始話方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268512.html
標籤:C語言
上一篇:編程問題
下一篇:C語言排序
