【发布时间】:2020-07-13 13:24:34
【问题描述】:
我正在尝试编写一个获取一堆数字的程序,n >= 5 程序要求用户输入 n 个非负数并计算最小值、最大值和数字的总和。 如果用户输入负数,该函数会要求输入正数。 我对第一个负数有疑问,知道下面的代码有什么问题吗?
void main()
{
int x;
printf("Enter number:\n");
scanf("%d", &x);
if (x >= 5)
{
int max = 0, min, num1;
printf("Enter numbers: \n");
scanf("%d", &num1); //here was the error
min = num1;
int sum = num1;
for (int i = 1; i < x; i++)
{
scanf("%d", &num1);
while (num1 < 0)
{
{
printf("Enter again number: /n");
scanf("%d", &num1);
}
}
if (num1 > max)
max = num1;
else if (num1 < min)
min = num1;
sum += num1;
}
printf("The max number is %d, and the min is %d, and the sum is %d", max, min, sum);
}
else
printf("invalid number!");
}
output:
Enter number:
8
Enter numbers:
-8
7
6
9
10
6
7
6
The max number is 10, and the min is -8, and the sum is 43
【问题讨论】:
-
在输入的号码为
>= 0的情况下,您没有维护min等。将这些东西移出重新输入num1的代码块。 -
scanf("%d", num1);应该是scanf("%d", &num1);的两个实例注意编译器警告。 -
你遇到了什么错误?
-
...最里面的大括号也没有形成真正需要它们的代码块。