【发布时间】:2020-07-10 22:30:34
【问题描述】:
我正在尝试用这个程序做两件主要的事情:
- 让用户输入数字,直到他们输入 0 或直到他们到达数组的末尾。
- 在第二部分中,我想找到存储在数组中的最小值和最大值并将它们打印出来。
最大值打印准确,但最小值打印看起来像地址的东西。
这是我目前的代码,你能帮帮我吗?
#include<stdio.h>
#define SIZE 100
int main()
{
int count = 0, store, array[SIZE], total;
int min = array[0], max = array[0];
do
{
printf("\nEnter integer number %d. Press 0 to exit: \n", (count + 1));
scanf("%d", &store);
array[count ++] = store;
} while ( count < SIZE && store != 0 );
total = count;
printf("Total number of values in array is %d.\n", total);
for ( count = 0 ; count <= total && array[count] != 0 ; count ++)
{
if(array[count] < min)
{
min = array[count];
}
if(array[count] > max)
{
max = array[count];
}
}
printf("\nThe min value is %d.\nThe max value is %d.\n", min, max);
return 0;
}
【问题讨论】:
-
读取值后移动
int min = array[0], max = array[0];。 -
您错误地初始化了
min和max,因为此时您甚至没有读入用户输入,因此它们可能是一些垃圾值。 -
永远不要在同一行声明/初始化多个变量,这样就不会出现这些错误。
-
@NadavS 怎么样??
-
你不需要两个循环。您可以在收到值时找到最大值和最小值。
标签: c arrays max user-input min