【发布时间】:2023-03-14 13:26:01
【问题描述】:
我有这个问题,用户必须输入一个整数列表,然后找到整数列表中最大的一个,并计算输入了多少次这个最大数字。
这是我的源代码:
int main()
{
int i, numberOfIntegers, listOfIntegers, largest = 0, occurrence = 0;
p("\n How many integers do you want to enter? ");
s("%i", &numberOfIntegers);
p("\n Input %i number of integers: ", numberOfIntegers);
for (i = 1; numberOfIntegers == listOfIntegers; i++)
{
s("%i", &listOfIntegers);
if (listOfIntegers > largest)
{
largest = listOfIntegers;
}
if (listOfIntegers == largest)
{
occurrence++;
}
}
p("\n \n The largest value is %i and the number of occurrence is %i", largest, occurrence);
return 0;
}
我的问题是我的程序不允许用户输入数字。而如果用户不能输入任何数字,程序就无法读取最大数字和最大数字出现的次数。
我的程序的输出如下所示:
How many integers do you want to enter? 13
Input 13 number of integers:
The largest value is 0 and the number of occurrence is 0
正确的输出应该是:
How many integers do you want to enter? 13
Input 13 number of integers: 5, 2, 15, 3, 7, 15, 8, 9, 5, 2, 15, 3, 7
The largest value is 15 and it was entered 3 times.
问题出在循环中吗?
我在循环方面遇到问题,所以如果有人能指出我的程序哪里出了问题,那将非常有帮助。
【问题讨论】:
-
提示:
numberOfIntegers == listOfIntegers第一次执行时,listOfIntegers的值是多少? -
当
listOfIntegers > largest为真时,也重置occurrence。
标签: c loops conditional-statements