C 程序:偶数的平均与奇数的乘积

问题描述 投票:0回答:1

我们被要求输入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;    
}
c loops
1个回答
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 变量并进行简单的平均计算。

这应该可以解决你的任务,并且还可以清楚何时使用哪些循环

© www.soinside.com 2019 - 2024. All rights reserved.