如何打印其值和尺寸由用户设置的数组

How to print an array whose values and dimensions are set by the user

本文关键字:用户 设置 数组 何打印 打印      更新时间:2023-10-16

该问题最初指定用户输入三乘三矩阵的值。然后提出了修改程序的挑战,以便用户可以指定数组的维度。我尝试了这个问题,我的程序工作正常,但它只以用户指定的数组的形式打印出最后一个值。

/*three by three matrix
user enters values
outputs these elements
sums all the elements and outputs the result
*/
#include <iostream>
using namespace std;
int main(){
int i, j;
int r, c = 0;
int matrix[r][c];
int sum;
cout << "A matrix, you want to make.Help I shall, n";
cout << "ROWS: ";
cin >> r;
cout << "COLUMNS: ";
cin >> c;
cout << "Give me the values of the " << r << " X " << c << " matrix in rows first: ";
cout << "n";
//user inputs the values
for(i = 0; i < r; i++){
for(j = 0; j < c; j++){
cin >> matrix[r][c];
sum = matrix[r][c] + sum;
}
cout << "n";
}

//outputs the values
for(i = 0; i < r; i++){
for(j = 0; j < c; j++){
cout << matrix[r][c] << " ";
}
cout << "n";
}
cout << "The sum of all these elements is: " << sum;
return 0;
}

让我们考虑一下

int main(){
int i, j;
int r, c = 0;
int matrix[r][c];

这里r未初始化,c为零。这意味着matrix具有未知数量的行和零列。请注意,如果您确实想初始化相同类型的多个变量,通常最好每行初始化一个,如下所示

int r = 0;
int c = 0;

可能最简单的方法是使用注释中提到的矢量向量。不幸的是,C++对多维数组的内在支持相对较差。

请尝试以下代码:

包括

使用命名空间标准;

int main(){
int i, j;
int r, c = 0;
int sum=0;
cout << "A matrix, you want to make.Help I shall, n";
cout << "ROWS: ";
cin >> r;
cout << "COLUMNS: ";
cin >> c;
cout << "Give me the values of the " << r << " X " << c << " matrix in rows first: ";
cout << "n";
int matrix[r][c];
//user inputs the values
for(i = 0; i < r; i++){
for(j = 0; j < c; j++){
cin >> matrix[i][j];
sum = matrix[i][j] + sum;
}
cout << "n";
}

//outputs the values
for(i = 0; i < r; i++){
for(j = 0; j < c; j++){
cout << matrix[i][j] << " ";
}
cout << "n";
}
cout << "The sum of all these elements is: " << sum;
return 0;
}

您的代码中存在两个问题:

  1. 您在开始时初始化矩阵 [r][c] 时没有初始化 r 和 c 的值。

  2. 你正在做 cin>> 矩阵[r][c] 内部循环,每次循环运行时都会获取矩阵 [3][3] 的值,因为 r=3 和 c=3。而是做 cin>> 矩阵[i][j] 内部循环。

希望这有帮助!!