如何打印其值和尺寸由用户设置的数组
How to print an array whose values and dimensions are set by the user
该问题最初指定用户输入三乘三矩阵的值。然后提出了修改程序的挑战,以便用户可以指定数组的维度。我尝试了这个问题,我的程序工作正常,但它只以用户指定的数组的形式打印出最后一个值。
/*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;
}
您的代码中存在两个问题:
您在开始时初始化矩阵 [r][c] 时没有初始化 r 和 c 的值。
你正在做 cin>> 矩阵[r][c] 内部循环,每次循环运行时都会获取矩阵 [3][3] 的值,因为 r=3 和 c=3。而是做 cin>> 矩阵[i][j] 内部循环。
希望这有帮助!!
相关文章:
- 如何设置默认参数以防用户不输入另一个参数
- 错误:调用'strcmp'没有匹配函数(尝试设置显示用户信息功能)
- 如何为用户设置仅输入 4 位代码的限制?
- 在 C++ 中设置的用户定义数据类型
- 有没有办法根据用户参数设置函数指针?
- 如何打印其值和尺寸由用户设置的数组
- 如何将用户输入数组值移动到数组末尾并将其设置为 0
- 将 c++ 代码中的当前用户环境变量设置为对其他进程(如 cmds)可见
- 如何基于用户设置的初始变量设置一组常数值
- C++获取用户首选的编码或区域设置编码
- 使用 C 在 Linux 中设置用户的补充组 ID
- 如何创建库代码可以使用且用户可以设置的变量
- 具有C++设置错误的用户对象
- Win32 中是否有一条消息或通知来检测用户何时更改区域设置?
- 如何为Qwidget设置用户数据
- 如何使用C/C++将用户设置完全内部存储在exe中
- 单击按钮时,将当前位置/订单保存在QTabWidget中 - 用户设置
- 如何在跨平台应用程序中存储首选项(和用户设置)
- 以编程方式为所有用户设置注册表软件策略键
- QT与.net用户设置有什么相似之处,在使用上是否相似?