首页 > 解决方案 > c - 通过函数后输出没有变化

问题描述

这是我昨晚提交的作业问题的延伸。这个程序对我来说太混乱了,所以我退后一步,重新开始学习一些关于退货和路过的新知识。整个程序旨在获取任意数量的整数,首先找到总和和平均值,然后打印每个整数的平方根,然后如果任何整数小于 20,则打印布尔值 true 或 false,最后打印布尔值 true 或如果任何整数介于 10 和 90 之间,则为 false。

但现在我需要做的就是让我的头脑围绕这个问题。目前我只打算解决这个问题的总和和平均部分。它必须使用传递引用来完成,据我所知,这是我在下面显示的代码中使用的:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int functionSumAvg(int sumAvgInput);

void main()
{
  int amountOfNumbers,number,x,output;

  output = 0;

  printf("Enter how many numbers you want: ");
  scanf("%d",&amountOfNumbers);
  printf("Input each number, separated by a space: ");

  for(x = 0; x < amountOfNumbers; ++x){
    scanf("%d",&number);
    int output = functionSumAvg(number);

  }
  printf("output: %d",output);
}


int functionSumAvg(int sumAvgInput){
  int sum =+ sumAvgInput;
  return sum;
}

我得到的想法是,您输入所需的整数数量,然后将其相加,将总和添加到输出中,然后重复直到全部完成。之后它将打印出最终输出,即所有整数相加的结果。但相反,它打印为零。最初它打印出我认为是内存地址,一些大垃圾号码,所以我将它设置为零。但这只是一个创可贴的解决方案,并没有解决问题本身。

标签: cfunctionpass-by-reference

解决方案


   int output = functionSumAvg(number);

创建一个新的临时output

 output = functionSumAvg(number);

推荐阅读