程序(在C中)是要求用户一次输入一个整数(0表示退出指示)并使用while循环找到偶数输入/奇数输入的数量和总数,如果/ else结构和用户定义的函数。我无法获得用户定义的函数来打印所需的语句。 (目前为止的代码)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char name[30];
printf("Enter name: ");
scanf("%s", name);
int num=1, even_count=0, even_sum=0, odd_count=0, odd_sum=0;
while (num != 0)
{
printf("Enter an integer (0 to stop): ");
scanf("%d", &num);
}
if ((num % 2) == 0) {
even_count++;
}
else {
odd_count++;
}
printf("%s,your inputs are broken down as follows: \n", name);
return even_count, even_sum, odd_count, odd_sum;
}
int output_function(int even_ct, int e_sum, int odd_ct, int o_sum)
{
int count1, sum1, count2, sum2 = main();
printf("You entered %d even numbers with a total value of %d.\n", count1, sum1);
printf("You entered %d odd numbers with a total value of %d.\n", count2, sum2);
return 0;
}
答案 0 :(得分:1)
您永远不会致电output_function
。
替换
return even_count, even_sum, odd_count, odd_sum;
通过
output_function(even_count, eve_sum, odd_count, odd_sum);
并删除
int count1, sum1, count2, sum2 = main();
删除的最后一行绝对没有意义。
最后用这个替换你的printfs:
printf("You entered %d even numbers with a total value of %d.\n", even_ct, e_sum);
printf("You entered %d odd numbers with a total value of %d.\n", odd_ct, o_sum);
答案 1 :(得分:0)
我认为,首先你应该在main之前声明output_function:
int output_function(int even_ct, int e_sum, int odd_ct, int o_sum);
int main()
{...}
其次, main 的返回值必须是单个整数值。 第三, output_function 总是返回零。
不要忘记拨打 output_function 。
SK
答案 2 :(得分:0)
你有一些好主意。
你想:
output_function
在main
之后定义,因此可以调用main
函数可以按顺序返回多个变量:
return even_count, even_sum, odd_count, odd_sum;
您可以通过调用函数来获取它们的值:
int count1, sum1, count2, sum2 = main();
但是C不能那样工作:
main
函数首先执行,比任何其他函数更早。return even_count, even_sum, odd_count, odd_sum;
等于return odd_sum;
int count1, sum1, count2, sum2 = somethings;
只会为您带来sum2 = somethings
请先清理这些烂摊子,否则你可能会很好地使用该程序。