【发布时间】:2021-11-13 04:53:02
【问题描述】:
我对 stackoverflow 和编码还很陌生,所以我现在不知道该怎么做。正如图块所述,此代码不输出任何内容。它只运行,但没有输出。我现在不知道该怎么办。我正在使用带有 g++ 的 Visual Studio Code。是的,我检查了输入文件是否正确放置。可能是什么问题?
#include <iostream>
#include <fstream>
using namespace std;
const int NR = 10;
const int NC = 5;
int getTotal(int arr[NR][NC]);
float getAverage (int arr[NR][NC]);
int rowTotal (int arr[NR][NC], int numOfRow);
int colTotal (int arr[NR][NC], int numOfCol);
int getHighestInRow (int arr[NR][NC], int numOfRow);
int getLowestInRow (int arr[NR][NC], int numOfRow);
int main()
{
ifstream file("arraysfile.txt");
int arr[NR][NC];
int total = 0;
float avg = 0.0;
int rowTotal = 0;
int colTotal = 0;
int highestInRow = 0;
int lowestInRow = 0;
int numOfRow = 0;
int numOfCol = 0;
for (int r = 0; r < 10; r++)
{
for (int c = 0; c < 5; c++)
{
file >> arr[10][5];
}
}
total = getTotal(arr);
avg = getAverage(arr);
cout <<"What row would you like to process?"<<std::endl;
cin >> numOfRow;
cout <<"What column would you like to process?"<<std::endl;
cin >> numOfCol;
rowTotal = (arr, numOfRow);
colTotal = (arr, numOfCol);
highestInRow = getHighestInRow(arr, numOfRow);
lowestInRow = getLowestInRow(arr, numOfRow);
cout << "Total sum of all number is: "<<total<<std::endl;
cout << "Average of all numbers is: "<< avg <<std::endl;
cout << "Sum of row # "<<numOfRow<< " is: "<<rowTotal<<std::endl;
cout << "Sum of column # "<<numOfCol<< " is: "<<colTotal<<std::endl;
cout << "The highest number in row # "<<numOfRow<< " is: "<<highestInRow<<std::endl;
cout << "The lowest number in row # "<<numOfRow<< " is: "<<lowestInRow<<std::endl;
}
int getTotal(int arr[NR][NC])
{
int total = 0;
for (int i = 0; i < NR; i++)
{
for (int j = 0; i <NC; j++)
{
total+=arr[i][j];
}
}
return total;
}
float getAverage (int arr[NR][NC])
{
float avg = 0.0;
int total = 0;
for (int i = 0; i < NR; i++)
{
for (int j = 0; i <NC; j++)
{
total+=arr[i][j];
}
}
avg = (total/(NR/NC));
return avg;
}
int rowTotal (int arr[NR][NC], int numOfRow)
{
int rowTotal = 0;
for (int i = 0; i < NC; i++)
{
rowTotal += arr[numOfRow-1][i];
}
return rowTotal;
}
int colTotal (int arr[NR][NC], int numOfCol)
{
int colTotal = 0;
for (int i = 0; i < NR; i++)
{
colTotal += arr[i][numOfCol-1];
}
return colTotal;
}
int getHighestInRow (int arr[NR][NC], int numOfRow)
{
int highest = arr[numOfRow][0];
for (int i = 0; i < NC; i++)
{
if (arr[numOfRow][i] > highest)
{
highest = arr[numOfRow][i];
}
}
return highest;
}
int getLowestInRow (int arr[NR][NC], int numOfRow)
{
int lowest = arr[numOfRow][0];
for (int i = 0; i < NC; i++)
{
if (arr[numOfRow][i] < lowest)
{
lowest = arr[numOfRow][i];
}
}
return lowest;
}
【问题讨论】:
-
file >> arr[10][5];->file >> arr[r][c];这只能解释任何事情,因为您试图写入数组边界之外的数组元素。您的代码具有未定义的行为 -
您是否尝试过在调试器中逐行运行代码,同时监控所有变量的值,以确定您的程序在哪个点停止按预期运行?如果您没有尝试过,那么您可能想阅读以下内容:What is a debugger and how can it help me diagnose problems?
-
对于初学者,构建时启用警告并将其视为必须修复的错误。 Your code have some warnings 关于现在可能按您预期工作的事情。
-
您正在使用 Visual Studio。你在使用调试器吗?
标签: c++ arrays multidimensional-array