C程序包含用户定义的函数,while循环和if / else结构

时间:2016-02-22 06:08:09

标签: c

程序(在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;
}

3 个答案:

答案 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_functionmain之后定义,因此可以调用main
  • 函数可以按顺序返回多个变量:

    return even_count, even_sum, odd_count, odd_sum;

  • 您可以通过调用函数来获取它们的值:

    int count1, sum1, count2, sum2 = main();

但是C不能那样工作:

  • main函数首先执行,比任何其他函数更早。
  • 你不能在C中返回几个变量(在Python等其他一些高级语言中,没关系)。 return even_count, even_sum, odd_count, odd_sum;等于return odd_sum;
  • 与上述类似,int count1, sum1, count2, sum2 = somethings;只会为您带来sum2 = somethings

请先清理这些烂摊子,否则你可能会很好地使用该程序。