c语言二维数组问题

设有二维数组a[5][5]和数组b[5][5],编写程序实现将数组a中最后一行放到二维数组b的第0列,将数组a中的第0行放到b数组的最后一列中,b数组中的其他数组元素不变... 设有二维数组a[5][5]和数组b[5][5],编写程序实现将数组a中最后一行放到二维数组b的第0列,将数组a中的第0行放到b数组的最后一列中,b数组中的其他数组元素不变,求输出变化后的b数组 展开
 我来答
喜羊羊651
2020-06-03 · TA获得超过314个赞
知道小有建树答主
回答量:1186
采纳率:76%
帮助的人:111万
展开全部

#include "stdio.h"

int main()

{

int a[5][5]={{1,3,5,7,9},{11,13,15,17,19},{21,23,25,27,29},{31,33,35,37,39},{41,43,45,47,49}};

int b[5][5]={{2,4,6,8,10},{12,14,16,18,20},{32,34,36,38,40},{42,44,46,48,50},{52,54,56,58,60}};

int i,j;

printf("a数组:\n");

for (i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%3d ",a[i][j]);

printf("\n");

}

printf("b数组:\n");

for (i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%3d ",b[i][j]);

printf("\n");

}

for (i=0;i<5;i++)

{

b[i][0]=a[4][i];

b[i][4]=a[0][i];

}

printf("变化后的b数组:\n");

for (i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%3d ",b[i][j]);

printf("\n");

}

return 0;

}

匿名用户

2022-06-19
展开全部
①若a[i]为一维数组

则有,

a[0],为数组的一个元素。

a[i]=*(&a[i]),为数组的一个元素。

a+i=&a[i],为元素a[i]的地址。

*(*(a+i))=*(*&a[i])=*a[i],

*a[i]无意义。

②若a[i]为二维数组

则有,

a[0],为数组的一个列指针。

a[i]=*(&a[i]),为数组的一个列指针。

a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。

*(*(a+i))=*(*&a[i])=*a[i],

*a[i],表示第(i+1)行第1列的元素。

③综上所述

(a+i)、a[i]在一维数组和二维数组中的含义不同。

一维数组中

(a+i)表示地址,元素地址,数组名。

a[i]表示元素。

二维数组中

(a+i)表示行指针,列指针地址,元素地址的地址,以一行列指针为元素的数组的数组名(过渡数组名)

a[i]表示列指针。

二维公式复习

行指针:

a+i

=&&a[i][j]

列指针:*(a+i)+j=

a[i]

+j=(a+i)[j]=&a[i][j]

元素*(*(a+i)+j)=*(

a[i]

+j)=*(a+i)[j]=

a[i][j]

就这么简单,

你学会了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户

2022-06-20
展开全部
①若a[i]为一维数组

则有,

a[0],为数组的一个元素。

a[i]=*(&a[i]),为数组的一个元素。

a+i=&a[i],为元素a[i]的地址。

*(*(a+i))=*(*&a[i])=*a[i],

*a[i]无意义。

②若a[i]为二维数组

则有,

a[0],为数组的一个列指针。

a[i]=*(&a[i]),为数组的一个列指针。

a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。

*(*(a+i))=*(*&a[i])=*a[i],

*a[i],表示第(i+1)行第1列的元素。

③综上所述

(a+i)、a[i]在一维数组和二维数组中的含义不同。

一维数组中

(a+i)表示地址,元素地址,数组名。

a[i]表示元素。

二维数组中

(a+i)表示行指针,列指针地址,元素地址的地址,以一行列指针为元素的数组的数组名(过渡数组名)

a[i]表示列指针。

二维公式复习

行指针:

a+i

=&&a[i][j]

列指针:*(a+i)+j=

a[i]

+j=(a+i)[j]=&a[i][j]

元素*(*(a+i)+j)=*(

a[i]

+j)=*(a+i)[j]=

a[i][j]

就这么简单,

你学会了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户

2022-06-20
展开全部
①若a[i]为一维数组

则有,

a[0],为数组的一个元素。

a[i]=*(&a[i]),为数组的一个元素。

a+i=&a[i],为元素a[i]的地址。

*(*(a+i))=*(*&a[i])=*a[i],

*a[i]无意义。

②若a[i]为二维数组

则有,

a[0],为数组的一个列指针。

a[i]=*(&a[i]),为数组的一个列指针。

a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。

*(*(a+i))=*(*&a[i])=*a[i],

*a[i],表示第(i+1)行第1列的元素。

③综上所述

(a+i)、a[i]在一维数组和二维数组中的含义不同。

一维数组中

(a+i)表示地址,元素地址,数组名。

a[i]表示元素。

二维数组中

(a+i)表示行指针,列指针地址,元素地址的地址,以一行列指针为元素的数组的数组名(过渡数组名)

a[i]表示列指针。

二维公式复习

行指针:

a+i

=&&a[i][j]

列指针:*(a+i)+j=

a[i]

+j=(a+i)[j]=&a[i][j]

元素*(*(a+i)+j)=*(

a[i]

+j)=*(a+i)[j]=

a[i][j]

就这么简单,

你学会了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式