#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);
}
似乎偶数计算有效,但是当它出现奇怪时它给出了错误的答案。请帮忙 我们的教师希望我们使用循环或迭代。没有数组。请帮帮我
答案 0 :(得分:0)
首先,您的C代码需要进行一些更正:
__amp_source_origin:https://www.example.com
的原型getn
被定义为返回getn
并且不返回任何内容。将int
替换为int
或返回值。其次,
void
中按原样存储。例如,如果输入数字3的10倍,结果为59049,则效果很好,但如果输入数字23的10倍,则会回答1551643729这是错误的,因为23 ^ 10 = 41426511213649但是无法存储int
。这称为算术溢出。int
s,但平均值(一般来说)是一个有理数(平均值(2,3)= 2.5不是吗?)。所以int
(意味着计算一个浮动分区),double avg = out/10.0;
会更好。