c语言 二维数组a [ 5 ] [ 5 ] 如何通过指针交换第二行和第三行??
3个回答
展开全部
void main(void)
{
int a[5][5] = {{0,1,2,3,4}, \
{5,6,7,8,9}, \
{10,11,12,13,14},\
{15,16,17,18,19},\
{20,21,22,23,24}};
int (*p)[5] = a;/*数组指针p*/
int i, j;
/*交换第二行和第三行*/
for(i=0;i<5;i++)
{
j=*(p[1]+i);
*(p[1]+i)=*(p[2]+i);
*(p[2]+i)=j;
}
/*输出*/
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
/*getch();*/
}
{
int a[5][5] = {{0,1,2,3,4}, \
{5,6,7,8,9}, \
{10,11,12,13,14},\
{15,16,17,18,19},\
{20,21,22,23,24}};
int (*p)[5] = a;/*数组指针p*/
int i, j;
/*交换第二行和第三行*/
for(i=0;i<5;i++)
{
j=*(p[1]+i);
*(p[1]+i)=*(p[2]+i);
*(p[2]+i)=j;
}
/*输出*/
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
/*getch();*/
}
2015-12-15 · 知道合伙人数码行家
关注
展开全部
#include<stdio.h>
#include<string.h>
int s[1000][1000];
int n,m,i,j,k,temp;
int a,b;
int main()
{
printf("输入行列:");
scanf("%d %d",&n,&m); //二维数组的行数n,列数m
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",s[i]+j); //得到二维数组
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d",s[i][j]); //输出交换后的数组
printf("\n");
}
printf("输入需要交换的行:");
scanf("%d %d",&a,&b); //二维数组的行数n,列数m
for(j=0;j<m;j++)
{ //交换第三行和第五行的数
temp=s[a][j];
s[a][j]=s[b][j];
s[b][j]=temp;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d",s[i][j]); //输出交换后的数组
printf("\n");
}
return 0;
}
#include<string.h>
int s[1000][1000];
int n,m,i,j,k,temp;
int a,b;
int main()
{
printf("输入行列:");
scanf("%d %d",&n,&m); //二维数组的行数n,列数m
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",s[i]+j); //得到二维数组
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d",s[i][j]); //输出交换后的数组
printf("\n");
}
printf("输入需要交换的行:");
scanf("%d %d",&a,&b); //二维数组的行数n,列数m
for(j=0;j<m;j++)
{ //交换第三行和第五行的数
temp=s[a][j];
s[a][j]=s[b][j];
s[b][j]=temp;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d",s[i][j]); //输出交换后的数组
printf("\n");
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是char类型 的用strcpy函数交换,如果是非char类型的只能一个个交换了
追问
就是数字类型的 具体怎么写呢?
追答
#define L 10 共10列
#define H 10 每行10个
那么数组就是array [L][H]
创建两个指针分别指向第二行第一个元素和第三行第一个元素
int *p1=array[1];
int*p2=array[2];
第二行和第三行交换就是
for (i=0;i<H;i++)
{array [1] [i]和array [2][i]进行交换}
/*把第二行第i(i=0,1,2,3)个元素和第三行第i个元素交换,如果要用指针的话可以 写成*(p1+i);等同于array [1] [i],而*(p2+i);等同于array [2][i],两者的值进行交换*/
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询