要把一维数组int a[m*n]的元素传送到二维数组int b[m][n]中,即在程序中要执行
b[i][j]=a[k];
请写出k→i,j的下标变换公式,并用程序进行验证。
转换公式: i=k/n j=k%n
验证程序:
#include <iostream> using namespace std; int main() { const int M=3,N=4; int k,a[M*N]={1,2,3,4,5,6,7,8,9,10,11,12}, b[M][N]; int i,j; cout<<"array a:"<<endl; for( k=0; k<M*N; k++ ) b[k/N][k%N] = a[k]; for( k=0; k<M*N; k++ ) cout<<a[k]<<'\t'; cout<<endl; cout<<"**After convert**"<<endl; cout<<"array b:"<<endl; for(i=0;i<M;i++) { for(j=0;j<N;j++) cout<<b[i][j]<<'\t'; cout<<endl; } }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
转换公式: i=k/n j=k%n
验证程序:
#include <iostream> using namespace std; int main() { const int M=3,N=4; int k,a[M*N]={1,2,3,4,5,6,7,8,9,10,11,12}, b[M][N]; int i,j; cout<<"array a:"<<endl; for( k=0; k<M*N; k++ ) b[k/N][k%N] = a[k]; for( k=0; k<M*N; k++ ) cout<<a[k]<<'\t'; cout<<endl; cout<<"**After convert**"<<endl; cout<<"array b:"<<endl; for(i=0;i<M;i++) { for(j=0;j<N;j++) cout<<b[i][j]<<'\t'; cout<<endl; } }