/*本来是要写矩阵的压缩存储,但是变成了两个数组的拷贝,拷贝即需要利用两层for循环先输出再存入另一个数组中
屏蔽的部分本来是想控制相同元素的再次存入,节省空间的问题,但是输出的结果却还是数组中所有的值,
如果哪位知道这个程序怎么改成矩阵的压缩存储,麻烦教我一下,拜托了
*/
先给出一个能实现数组拷贝的程序
#include<iostream>
using namespace std;
int main()
{
int a[5];
int b[5];
int i;
for ( i = 0; i <5; i++)
{
cin >> a[i];
}
int k = 0;
for(i = 4;i>=0;i--)
{
b[i] = a[k];
k++;
}
for (i = 0; i <5; i++)
{
cout<<b[i]<<" ";
}
system("pause");
return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------------
#include<iostream>
using namespace std;
#define ERROR 0
#define ture 1
/*int equal(int b[4][4],int a[4][4]) //判断两数组中是否有相等的元素
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
for(int k=0;k<4;k++)
{
for(int l=0;l<4;l++)
{
if(a[i][j]!=b[k][l]) //如果没有,则把a数组中的元素存入b数组中
{
b[i][j]=a[i][j];
}
else if(a[i][j]==b[k][l])
{
return ERROR;
}
else if(a[i][j]==0)
{
return ERROR;
}
}
}
}
}
}
*/
void copy(int b[4][4],int a[4][4]) //赋值函数,把a数组中的元素复制到b数组中
{
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{ //
b[i][j]=a[i][j];
}
}
}
void disp(int b[4][4]) //显示函数,用来打印b数组中的值
{
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
cout<<b[i][j];
}
cout<<endl;
}
}
void Input(int a[4][4]) //输入一个4行4列的数组
{
int i,j;
for(i=0;i<4;i++) //for循环控制二维数组中元素的存储
{
for(j=0;j<4;j++)
{
cin>>a[i][j];
}
cout<<endl;
}
}
int main()
{
//int a[4][4]={{1,5,5,1},{2,6,6,2},{3,7,7,3},{4,8,8,4}}; //定义数组并赋予初值
int a[4][4];
cout<<"请输入要存储的数据:"<<endl;
Input(a); //调用输入函数,用来存储从外界输入的值
int b[4][4]; //定义数组用来存储数据
copy(b,a); //调用赋值函数,实现赋值功能
cout<<"结果为:"<<endl; //显示函数,用来打印数组中的值
disp(b);
//cout<<"如果有相同元素则不再次存入数组中的结果为:"<<endl;
// equal(b,a);
//disp(b);
system("pause");
return 0;
}