C语言 将二维数组a[4][5]中的元素按列存放到一维数组b[20]中,二维数组元素键盘输入

如题所述

//希望我的回答对你的学习有帮助
#include <stdio.h>

int main()
{
int a[4][5] = {}, b[20] = {}; //定义并初始化为 0

for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
scanf("%d", &a[i][j]); //输入 20 个数据
}
}

printf("The a[4][5] is : \n");
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%4d", a[i][j]); //将输入的数据输出一遍
}
printf("\n"); //数组中输出一行之后,换行
}

for (int i = 0, k = 0; i < 5; i++) //因为要按列存储,所以数组中行变,列不变
//所以外层循环是 5 次,内层循环为 4 次
{
for (int j = 0; j < 4; j++)
{
b[k++] = a[j][i]; //将 a 中的值 赋值给 b
}
}

printf("The b[20] is : \n");
for (int i = 0; i < 20; i++)
{
printf("%3d", b[i]); //输出 b 中的数据
if (i == 9) printf("\n"); //输出 10 个换一行
}

return 0;
}

温馨提示:答案为网友推荐,仅供参考