【问题标题】:Using an Function to find the average of an array使用函数求数组的平均值
【发布时间】:2022-11-19 10:05:02
【问题描述】:

嗨,我正在尝试使用一个函数来查找数组的平均值,但一直得到一个疯狂的答案作为我的平均值。我正在读取一个包含数组的数据文件,并将新数据输出到一个新文件中,将其从奇数到偶数以及每个数组集的平均值分开。请帮助我,我希望你们不要攻击我,我在大学里学习编程 LOL。

程序正在读取的数据

数据文件.dat:

46 30 82 90 56 17 95 16 48 26 4 58 0 78 92 60 12 21 63 47 19 41 90 85 14 -9 52 71 79 16 80 51 95 102 34 10 79 95 61 92 89 88 66 64 92 63 66 64 39 5

    #include <iostream>
    #include <fstream>
    #include <iomanip>
    #include <fstream>
    using namespace std; 
    
    
    //Functions 
    
    double Findavg(int arrayEven[], int num) {  //FIXME add a Function to find the average.
    
      int i;
      int aut = 0;
      
      for (i = 0; i < num; ++i) {
          aut = aut + arrayEven[i];     
      
       }
        
        return aut / num; 
      }
    
    
    
    
    // Declaring variables 
    
    int main() {
      
      int arrayEven[50];
      int arrayOdd[50]; 
      int num; 
    
      int evenArraySize = 0; 
      int oddArraySize = 0;
      double evenAvg = 0; 
      double oddAvg = 0;
      int evenTotal = 0; 
      int oddTotal = 0;
    
      int evenhiVal; 
      int oddhiVal;
      int evenloVal;
      int oddloVal; 
      int i;
     
      
      ifstream filein;
      ofstream infile;
     
       
      
      // Input //
      filein.open("datafile.dat");
      filein >> num;
      while(!filein.eof()) {
          infile.open("Newdata.dat");
    
    
      
          for (i =0; i < 50; ++i) {  
    
          if (num % 2 == 0) {
            evenArraySize = num;
            ++evenArraySize;
             infile << num << " "; 
          }
          else 
            oddArraySize = num;
           ++oddArraySize;
          filein >> num;
      
     }
    
    
        
    // Processing /
      evenAvg = Findavg(arrayEven, num);
    infile << "Average: " << evenAvg << endl;
    
    //oddAvg = Findavg(num);
    
    
    
    
      }
      }
      
    
      } 

【问题讨论】:

  • 当您逐行调试调试器时,您看到了什么
  • 当您对变量进行硬编码时,代码是否有效?
  • 你的3个文件是什么?您有一个名为 infile 的输出流,这看起来很奇怪。
  • 我错过了什么吗?您从不在数组中放入任何数据?

标签: c++ arrays function sum average


【解决方案1】:

从这里开始

      else 
        oddArraySize = num;
       ++oddArraySize;

你缺少牙套。我假设你只想增加 oddAraysize 如果数字是奇数,你需要

      else {
        oddArraySize = num;
       ++oddArraySize;
      }

【讨论】:

    猜你喜欢
    • 2015-01-29
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多