c++ - 无法添加用户输入的数组值
问题描述
您好,我正在为我的 C++ 课程分配作业并且遇到了问题。说明是;创建一个4行3列的整数型二维数组
用用户输入的值填充二维数组,为此使用函数,调用此函数 userInputValues()。
以电子表格格式打印数组,同时打印每行值的总和。输出必须是:
Row Totals
value01 value02 value03 Sum01
value04 value05 value06 Sum02
value07 value08 value09 Sum03
value10 value11 value12 Sum04
列的值和总和必须右对齐。使用 sew() 函数。
使用函数打印值。调用此函数 printValues()。
必须使用循环输入值、遍历数组、计算总和并打印数组中的值。
#include<iostream>
#include<iomanip>
using namespace std;
int const ROWS = 4;
int const COLUMNS = 3;
void userInputValue(int myArray[ROWS][COLUMNS]);
void printValues(const int myArray[ROWS][COLUMNS]);
int main()
{
int myArray[ROWS][COLUMNS];
userInputValue(myArray);
printValues(myArray);
return 0;
}
void userInputValue(int myArray[ROWS][COLUMNS])
{
int index = 0;
cout << "Enter 12 numbers" << endl;
for(int row = 0; row < ROWS; ++row)
{
for(int column = 0; column < COLUMNS; ++column)
{
cout << ++index << ". Enter a number: ";
cin >> myArray[row][column];
}
}
} // End of method userInputValue
void printValues(const int myArray[ROWS][COLUMNS])
{
cout << right << setw(20) << "Row Totals" << endl;
for (int row = 0; row < ROWS; row++)
{
int sum;
for (int column = 0; column < COLUMNS; ++column)
{
cout << setw(3) << myArray[row][column];
sum = sum + myArray[row][column];
}
cout << setw(6) << sum<<'\n';
}
} // End of printValues
当我运行我得到的代码时,行总计
10 2 3-434904305
4 5 6-434904290
7 8 9-434904266
90 80 70-434904026
我错过了什么/做错了什么?抱歉,如果代码看起来很糟糕。C++ 不是我的第一母语
解决方案
int sum;
这声明了一个名为 的变量sum
,但没有将其初始化为 0。这是未定义的行为,表现为 sum 的初始值是随机垃圾。
随后的循环向这个随机垃圾添加更多值,然后打印随机垃圾作为添加的结果。因此,只需将其初始化为 0:
int sum=0;
顺便说一句:所有现代 C++ 编译器都非常擅长检测这种常见的编程错误并发出警告或诊断消息。如果您的编译器完全静默,则在编译此程序时:这应该表明您应该将编译器更新为更现代的东西。如果您的 C++ 编译器在编译您的程序时确实发出了诊断消息,那么将来要记住这一点:永远不要忽略来自 C++ 编译器的任何咨询消息。
推荐阅读
- java - 在 Fragment 的 MainActivity 之外使用 BottomNavigationView
- .net - 带有 MSDeploy.exe 的 Bitbucket 管道
- django - django静态文件设置有问题
- functional-programming - 使用延续传递样式简化多路树遍历
- reactjs - 如何有效地查询多个 React 组件中的相同 Firestore 数据?
- azure - AKS 持久卷关联性?
- python-3.x - Python setuptools:如何在 Nexus 上托管的私有 PyPI 存储库中指定依赖项?
- python-3.x - DJANGO 中的 Argon2 和会话变量中的密码
- powershell - Powershell:在对象中查找值并在另一列中获取其对应的值
- angular - 如何在角度材料的多选下拉菜单中实现搜索功能