C++编写程序,将3行4列的二维数组a中的每个元素逐行依次存放到一维数组中。

如题所述

#include <iostream>
#include <iomanip>
#define N 3 //行数
#define COL 4  //列数
using namespace std;
int main()
{
    int arr[N][COL]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //二维数组,测试数据
    int brr[N*COL]={0}; //一维数组   
    int k=0;
    
    for(int i=0;i!=N;++i){
        for(int j=0;j!=COL;++j){
            brr[k++]=arr[i][j];   //将二维数组数据抄到一维数组
            cout<<arr[i][j]<<" ";  //同时输出二维数组内容
            }
        cout<<endl;  //每输出一行,断行
    }
    cout<<endl; 
    k=0;
    for(int i=0;i!=N*COL;++i){
        cout<<brr[i]<< ((++k%6==0 )?"\n":" ");//输出一维数组,
        //并利用三目运算符实现满6个数断行
    }
    
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-26

#include <cstdio>

int main(){
int k=0,b[12];
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
for(int i=0;i<3;i++)
for(int j=0;j<4;j++){
b[k]=a[i][j];
k++;
}
for(int i=0;i<12;i++)
printf("%d ",b[i]);
}

第2个回答  2018-10-26
#include<stdio.h>

void printvalue(int a[3][4])
{
int *p=a[0];
for(int i=0;i<12;i++)
{
printf("%x,",(int)p++);
}
printf("\n");
p=a[0];
for(int i=0;i<12;i++)
{
printf(" %d ",*p++);
}
}
int main()
{
int a[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
printvalue(a);
return 0;
}本回答被网友采纳
相似回答