偶数的平均值和所有奇数的乘积

时间:2017-12-15 10:43:26

标签: c integer average product

#include <stdio.h>
#include <conio.h>

int getn(int n, int i);

int main()
{
    int n, i;

    getn(n, i);

    getch();
    return 0;
}
int getn(int n, int i)
{
    int even = 0;
    int odd = 1;
    int avg;

    printf("Enter ten integers: \n");
    for (i = 1 ; i <= 10 ; i++)
    {
        printf("Integer %d: ", i);
        scanf("%d", &n);
        if ( n % 2 == 0 )
        {
            even = even + n;
        }
        else
        {
            odd = odd * n;
        }
    }
    avg = even / 10;
    printf("\n\nAverage of even numbers: %d", avg);
    printf("\nProduct of odd numbers: %d", odd);
}

似乎偶数计算有效,但是当它出现奇怪时它给出了错误的答案。请帮忙 我们的教师希望我们使用循环或迭代。没有数组。请帮帮我

1 个答案:

答案 0 :(得分:0)

首先,您的C代码需要进行一些更正:

  1. 在使用之前至少给出__amp_source_origin:https://www.example.com 的原型
  2. getn被定义为返回getn并且不返回任何内容。将int替换为int或返回值。
  3. 其次,

    1. 您的代码计算十个数字的乘积,如果此产品太大,则无法在void中按原样存储。例如,如果输入数字3的10倍,结果为59049,则效果很好,但如果输入数字23的10倍,则会回答1551643729这是错误的,因为23 ^ 10 = 41426511213649但是无法存储int。这称为算术溢出
    2. 你的平均值很差,因为你总和int s,但平均值(一般来说)是一个有理数(平均值(2,3)= 2.5不是吗?)。所以int(意味着计算一个浮动分区),double avg = out/10.0;会更好。