以下是我一直试图操作超过一天的Visual C ++的原始代码。 这是最简单的无错误程序,可以正常运行。 我想要做的是插入两个函数:一个用于从用户获取输入,另一个用于显示输出。
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
int i, j,r,c;
int arr[5][5];
cout<< "enter r and c";
cin>> i>> j;
for(r=1;r<=i;r++)
{
for(c=1;c<=j;c++)
{
cout<< "enter elements";
cin>> arr[r][c];
}
}
cout<< " elements are"<< endl;
for(r=1;r<=i;r++)
{
for(c=1;c<=j;c++)
{
cout<<setw(4) <<arr[r][c];
}
cout<< endl<< endl;
}
cin.ignore();
getchar();
}
这是我尝试过的,但却给出了错误。
#include<iostream>
#include<iomanip>
using namespace std;
int input(int i, int j, int arr)
{
int r,c;
for(r=1;r<=i;r++)
{
for(c=1;c<=j;c++)
{
cout<< "enter elements";
cin>> arr[r][c];
}
}
return arr[r][c];
}
void output(int i, int j, int arr)
{
int r,c;
for(r=1;r<=i;r++)
{
for(c=1;c<=j;c++)
{
cout<<setw(4) <<arr[r][c];
}
cout<< endl<< endl;
}
}
void main()
{
int i, j,r,c;
int arr[5][5];
cout<< "enter r and c";
cin>> i>> j;
input(i,j,arr);
cout<< " elements are"<< endl;
output(i,j,arr);
cin.ignore();
getchar();
}
答案 0 :(得分:2)
您真的需要更深入地了解C ++,指针和函数。以下是您正在寻找的(排序),但是,您当然需要更深入地了解C ++:
#include<iostream>
using namespace std;
void output(int ** array)
{
for (int i= 0;i<5;++i)
{
for (int a= 0;a<5;++a)
{
cout << "Array[" << i << "][" << a << "] = " << array[a][i] << endl;
}
}
}
void input(int ** array)
{
for (int i= 0;i<5;++i)
{
for (int a= 0;a<5;++a)
{
cout << "Array[" << i << "][" << a << "] = " << endl;
cin >> array[i][a];
}
}
}
int main()
{
int** array;
array = new int*[5];
for (int i=0;i<5;++i)
array[i] = new int[5];
input(array);
output (array);
delete []array;
cin.ignore();
getchar();
return 0;
}
问题是,解释这就像从头开始教你C ++。无论你用什么方法学习C ++,都要坚持下去。你会到达那里,你还没准备好。你会发现一件事是将事情提升到一个新的水平并不容易。在学习的过程中,事情会停止并停止。虽然,采取额外的步骤,或尝试,并没有坏,你只需要知道什么时候不是时候。
编辑:
为了完成,这里是一个没有指针的例子:
#include<iostream>
using namespace std;
void output(int array[5][5])
{
for (int i= 0;i<5;++i)
{
for (int a= 0;a<5;++a)
{
cout << "Array[" << i << "][" << a << "] = " << array[a][i] << endl;
}
}
}
void input(int array[5][5])
{
for (int i= 0;i<5;++i)
{
for (int a= 0;a<5;++a)
{
array[i][a] = i*a;
}
}
}
int main()
{
int array[5][5];
input(array);
output (array);
cin.ignore();
getchar();
return 0;
}
答案 1 :(得分:0)
首先,从输入函数中返回一个循环中的值,使循环停止并返回主函数。
因此,如果您想要cin
输入矩阵的维度,则应将输入函数的返回类型更改为void,并删除返回arr[r][c];
。
其次,你在主循环中定义了arr[5][5]
,它不能从另一个函数访问,你甚至没有传递一个指针变量。您应该将双指针传递给输入函数以执行此操作,或者您可以在主函数外部定义arr[5][5]
。
最后,您要指定矩阵的大小,但不是动态指定其大小。
我建议对C / C ++中的函数和变量有一点了解。
答案 2 :(得分:0)
正如每个人都指出的那样,你需要加强你的编程基础。
void input(int i, int j, int arr[][5])
output
SIZE - 1
结束。所以改变
for(r=1;r<=i;r++)
至for(r=0;r<i;r++)
答案 3 :(得分:0)
为什么输入和输出顺序不同......这是错字吗?
void output(int array [5] [5])
cout << "Array[" << i << "][" << a << "] = " << array[a][i] << endl; // typo may be
cout << "Array[" << i << "][" << a << "] = " << array[i][a] << endl; // correction