我正在尝试创建一个程序,添加一个以行和列组织的多态数字,所以希望如果你看看我创建的数组,你会知道我想要做什么,但是可以这样想,你有3个数组A
,B
,C
,我正在尝试计算A+B=C
。
但除了愚蠢之外我什么也得不到,我需要帮助,因为我对数据结构知之甚少:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int i,j,A[10][10],B[10][10],C[10][10], nf, nc;
cout<<"#Rows: "<<endl;
cin>>nf;
cout<<"#Columns: "<<endl;
cin>>nc;
//For the A part
for(int i=0; i<=nf;i++){
cout<<"Enter the row Number # "<<i;
for(int j= 0; j<=nc;j++){
cout<<"Enter Column Column#"<<j<<endl;;
cin>>A[i][j];
}}
//For the B part
for(int i=0; i<=nf;i++){
cout<<"Enter Row # "<<i<<endl;
for(int j= 0; j<=nc;j++){
cout<<"Enter Column# "<<j<<endl;
cin>>B[i][j];
}}
//Calculation
for(int i=0; i<nf;i++)
for(int j=0;j<nc;j++)
C[i][j]= A[i][j]+ B[i][j];
//output
for(int i=0; i<nf;i++)
for(int j=0;j<nc;j++)
cout<<C[i][j];
system("PAUSE");
return EXIT_SUCCESS;
}
答案 0 :(得分:0)
您必须将单元格初始化为0.否则它们将包含垃圾值,并将用于添加。您可以通过初始化或使用循环来完成。
int main()
{
int nf, nc, A[10][10]={0}, B[10][10]={0}, C[10][10]={0};
}
你有未使用的变量i和j。它们不是错误输出的原因,但仍然避免它。
您可以找到程序的简化更正形式here(阵列边界也已更正)
for(int i=0; i<nf;i++)
for(int j= 0; j<nc;j++)
这些循环用于输入和输出
答案 1 :(得分:0)
你输入中循环的界限我认为不是你想要它或至少它与计算循环不一致
for(int j= 0; j<=nc;j++) vs for(int j= 0; j<nc;j++)
答案 2 :(得分:0)
我希望这是你的回应:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int i,j,A[10][10],B[10][10],C[10][10], nr, nc;
cout<<"#Rows: "<<endl;
cin>>nr;
cout<<"#Columns: "<<endl;
cin>>nc;
//For the A part
for(int i=0; i<nr;i++){
for(int j= 0; j<nc;j++){
cout<<"Enter the A["<<i<<"]["<<j<<"]"<<endl;
cin>>A[i][j];
}
}
//For the B part
for(int i=0; i<nr;i++){
for(int j= 0; j<nc;j++){
cout<<"Enter the B["<<i<<"]["<<j<<"]"<<endl;
cin>>B[i][j];
}
}
//Calculation
for(int i=0; i<nr;i++)
for(int j=0;j<nc;j++)
C[i][j]= A[i][j]+ B[i][j];
//output
for(int i=0; i<nr;i++)
for(int j=0;j<nc;j++)
cout<<C[i][j];
system("PAUSE");
return EXIT_SUCCESS;
}
答案 3 :(得分:0)
不要用许多cout语句使事情复杂化。
cout<<"Enter a["<<i<<"]"<<"["<<j<<"] : ";
cin>>a[i][j];
i = 0
到nf
表示您正在阅读nf+1
元素。因此有阵列出界。请注意i<nf
和i<=nf
。