题目: 编写一个程序,它将要求用户输入一些整数,并输出这些整数的平均值、最大值和最小值。程序应该满足以下要求: 要求:程序应该使用一个循环来读取用户输入的整数。当用户输入一个特殊的值(例如-1)时,循环应该结束。程序应该记录用户输入的整数的总数、总和、最大值和最小值。程序应该计算并输出这些整数的平均值、最大值和最小值。程序应该能够处理非法输入,例如非整数值或太大或太小的值。对于这些情况,程序应该给出恰当的错误提示,并要求用户重新输入。代码实现:// 以下代码仅供您参考
#include
int main() {
int num, count = 0, sum = 0, max = 0, min = 0, first = 1;
float avg = 0;
while (1) {
printf("Enter an integer (-1 to quit): ");
if (scanf("%d", &num) != 1) { // 检查输入是否为整数
printf("Invalid input. Please enter an integer.\n");
scanf("%*s"); // 清除缓存中的非整数值
continue;
}
if (num == -1) { // 输入-1结束循环
break;
}
count++;
sum += num;
if (first || num > max) {
max = num;
}
if (first || num 0) {
avg = (float) sum / count;
printf("Average: %.2f\n", avg);
printf("Max: %d\n", max);
printf("Min: %d\n", min);
} else {
printf("No valid input.\n");
}
return 0;
}思路:该程序的基本思路是使用一个while循环读取用户输入的整数,并在循环内对输入的整数进行处理。程序使用变量count来记录输入的整数的数量,sum来记录输入整数的总和,max和min分别用于记录输入的最大值和最小值。程序还使用了一个布尔变量first,以检查用户是否已经输入了至少一个整数,这可以避免在第一次比较时使用无效的最大或最小值。最后,程序使用平均值,最大值和最小值计算并输出结果。
|