我们被要求输入10个整数,然后显示所有偶数的平均值和所有奇数的乘积。 我们不允许使用数组。我所做的就是得到每个数字。我不太确定下一步该做什么。我不知道接下来是否会是 for 循环、while 循环、do while 循环。你能帮我一下吗?我使用什么类型的循环?每个整数都有一个 if else 语句吗?太感谢了!我做的就是这个。
#include <stdio.h>
#include <conio.h>
int main()
{
int prod, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, even = 0, odd = 1;
float ave;
printf("Enter interger1:");
scanf("%d", &i1);
printf("Enter interger2:");
scanf("%d", &i2);
printf("Enter interger3:");
scanf("%d", &i3);
//and so on
getch();
return 0;
}
决定对哪个用例使用哪个循环是一项重要任务。 我的一般经验法则(以及我在学校学到的经验法则)如下
For 循环: 当您提前知道要迭代多少次时。
While-Loops: 当迭代次数事先未知并且取决于条件是否成立时。它在每次迭代之前检查条件。
Do-While-Loops:与while循环类似,但它保证循环体至少执行一次,因为在循环执行后检查条件。
对于你的情况,因为你有一个定义好的数字范围,我建议使用四循环 我很少使用 do-while-循环,但它们确实有一个优势,因为您至少保存了一个条件检查。 我通常只使用经典的 while 循环来退出循环。 (以控制器为例,我使用 while(true) 来模拟需要用户确认的重复任务
现在我们已经决定使用哪个循环,让我们看一下接下来的内容:
int num, evenSum = 0, evenCount = 0, oddProduct = 1;
float average;
这些是我创建的变量。只是为了澄清以下代码
for (int i = 0; i < 10; i++) {
printf("Enter integer %d: ", i + 1);
scanf("%d", &num);
if (num % 2 == 0) { // Check if the number is even
evenSum += num; // Add to sum of even numbers
evenCount++; // Increment the count of even numbers
} else { // The number is odd
oddProduct *= num; // Multiply odd numbers
}
希望我的评论足以解释我在这里所做的事情
请记住,我确实计算了偶数。为什么? 准备以下代码
// Calculate the average of even numbers
if (evenCount > 0) {
average = (float)evenSum / evenCount;
printf("Average of even numbers: %.2f\n", average);
} else {
printf("No even numbers were entered.\n");
}
// Print the product of odd numbers
if (oddProduct != 1) {
printf("Product of odd numbers: %d\n", oddProduct);
} else {
printf("No odd numbers were entered.\n");
}
return 0;
我在这里所做的是使用前面声明的 float 变量并进行简单的平均计算。
这应该可以解决你的任务,并且还可以清楚何时使用哪些循环