二维数组的拷贝

/*本来是要写矩阵的压缩存储,但是变成了两个数组的拷贝,拷贝即需要利用两层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;
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值