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

标签 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);
}

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

最佳答案

首先,您的 C 代码需要一些修正:

  1. 使用前至少给出getn的原型(prototype)
  2. getn 被定义为返回 int 并且不返回任何内容。将 int 替换为 void 或返回一个值。

第二,

  1. 您的代码计算十个数字的乘积,如果该乘积太大,则无法按原样存储在 int 中。例如,如果您输入十次数字 3,结果是 59049,但是如果您输入十次数字 23,它会回答 1551643729,这是错误的,因为 23^10=41426511213649 但不能存储在int。这称为算术溢出
  2. 你的平均值很糟糕,因为你对 int 求和,但平均值(一般来说)是一个有理数(average(2,3)=2.5 不是吗?)。所以 double avg = out/10.0; (意味着计算 float 除法)和 printf("Average %f\n",avg); 会更好。

关于c - 偶数的平均值和所有奇数的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47830637/

相关文章:

c - 使用 NULL 数组将内存分配给二维数组 (c)

c - c中的信号和输出

javascript - value 中的变换索引数组

string - Rust:无法将整数解析为字符串,ParseIntError

c++ - 如何正确检查减法之前不会发生整数下溢和溢出?

c - 链表错误 - C

c - 函数参数地址之间的差异是否总是 4 个字节?

java - 如何找到该学生数组中所有学生的最高、最低和总平均数

java - 预期的 java 标识符

awk - 计算每个转录本的平均外显子数