当前位置:首页 » 编程语言 » c语言二维数组如何交换内容
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言二维数组如何交换内容

发布时间: 2022-11-02 02:51:45

Ⅰ 我想知道c语言中二维数组怎么交换。

以下程序使用指针实现,而且不只针对a[2][2]这样的数组,可以针对a[3][2],或者a[4][2]...a[n][2]或者a[n][m]这样任意数组的交换。
void main()
{
int a[2][2]={1,2,3,4};
int (*p)[2]=a;
int b;
int n=2; //行数
int m=2; //列数
for(int j=n-1,k=0;j>0;j--,k++)
for(int i=0;i<m;i++)
{b=*(p[j]+i);
*(p[j]+i)=*(p[k]+i);
*(p[k]+i)=b;

}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cout<<p[i][j]<<endl;

system("pause");
}

Ⅱ c语言中二维数组如何交换行

可以啊,给你写了个完整的程序,为了比较好理解,就把循环分开写了,实现就是这个意思,如果你想扩展的话可以用宏定义来实现。
#include <stdio.h>

void _swap(int p[4][4], int a, int b);

int main()
{
int a[4][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}};

int j=0,i=0;

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}

_swap(a,1,4);

printf("\n\n");

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}

return 0;
}

void _swap(int p[4][4], int a, int b)//交换二维数组(4*4)的a、b行
{
int aa[4];
int i;

for(i=0;i<4;i++)
aa[i]=p[a-1][i];
for(i=0;i<4;i++)
p[a-1][i]=p[b-1][i];
for(i=0;i<4;i++)
p[b-1][i]=aa[i];
}

Ⅲ C语言如何将二位字符串数组中的两个元素交换位置

#include<stdio.h>
#include<string.h>
voidmain(){chars[2][80]={"aaa","bbbb"},charbuf[80];
strcpy(buf,s[0]);strcpy(s[0],s[1]);strcpy(s[1],buf);//类似于整数变量交换值
printf("%s %s ",s[0],s[1]);
}

Ⅳ c语言中二维数组如何交换行

1.使用循环语句对于指定行的每列的数一个一个进行交换即可。

2.例程:

#include<stdio.h>
#include<string.h>
ints[1000][1000];
intn,m,i,j,k,temp;
intmain(){
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(j=0;j<m;j++){//交换第三行和第五行的数
temp=s[3][j];
s[3][j]=s[5][j];
s[5][j]=temp;
}
for(i=0;i<n;i++){
for(j=0;j<m;j++)printf("%d",s[i][j])//输出交换后的数组
printf(" ")
}
return0;
}

Ⅳ C语言中 二维数组行与行如何交换

//如3行4列
int mat[3][4]={0};
//换1,2行:
for(x=0;x<3;x++){
tmp = mat[x][1];

mat[x][1] = mat[x][2];

mat[x][2] = tmp;

}

Ⅵ C语言中如何将一个3×3的二维数组,行列互换,并赋值到另一个二维数组

#include<stdio.h>


intmain(void)


{


intarray[3][3]={1,2,3,4,5,6,7,8,9};


intarray_1[3][3];


printf("原始数组: ");


for(inti=0;i<3;i++){


for(intj=0;j<3;j++){


array_1[j][i]=array[i][j];


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


}


printf(" ");


}


printf("转换后数组: ");


for(intm=0;m<3;m++){


for(intn=0;n<3;n++){


printf("%d ",array_1[m][n]);


}


printf(" ");


}


return0;


}

Ⅶ C语言二维数组如何交换两行或者两列

代码:

#include<stdio.h>

int main()

{

int i, j, a[2][3] = { {1,2,3},{4,5,6} },b[3][2];

printf("array a: ");

for (i = 0; i <=1; i++)//处理a数组中的一行中各元素

{

for (j = 0; j <= 2; j++)//处理a数组中的某一列元素

{

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

b[j][i] = a[i][j];

}

printf(" ");

}

printf("array b: ");

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

{

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

{

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

}

printf(" ");

}

return 0;

}

(7)c语言二维数组如何交换内容扩展阅读:

1、return在函数中的作用

我们如果将函数看做一个加工厂,参数就是我们向加工厂投入的原料,具体的函数功能实际上就是加工的过程,而return语句代表返回值,就是加工厂在实现加工之后给“投资人”的成品。

2、return语句的特点

a、在函数当中,遇到return语句之后就意味着函数运行的结束,在此之后的代码是不运行的。

b、它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。

c、执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。

3、return的默认值:return函数默认的返回值为undefined。

Ⅷ C语言如何将二维数组中两个元素交换位置

可以让数组进行转置来实现,参考如下:
public class TestTransposition {
int col;
int row;
/**转换方法 将一个数组进行转置
* 原理很简单
*
* @param input
* @return
*/
public int[][] trans(int[][] input) {
int[][] output = null;
row = input.length;
if (row $amp;>amp;$nbsp;0) {
col = input[0].length;
}
output = new int[col][row];
for (int i = 0; i $amp; for (int j = 0; j $amp; output[j][i] = input[i][j];
}
}
return output;
}
public static void main(String[] args){
//若是需要得到转置数组,应该调用上面的转置方法
// int[][] in={{1,2,3},{3,4,5}};
// int[][] out=new TestTransposition().trans(in);
// for (int i = 0; i $amp; // for (int j = 0; j $amp; // System.out.print(out[i][j]);
// }
// System.out.println("");
// }
//若只是想输出得到效果 这应该是可以的
int[][] in={{1,2,3},{3,4,5}};
for(int i=0;i<in[0].length;i++){
for(int j=0;j<in.length;j++){
System.out.print(in[j][i]);
}
System.out.println("");
}
}
/*a[2][3]---->a[3][2]
* a[0][0]---->a[0][0]
* a[0][1]---->a[1][0]
* a[0][2]----->a[2][0]
* a[1][0]---->a[0][1]
* a[1][1]---->a[1][1]
* a[1][2]----->a[2][1]
*/
//故此 初步想法应是通过反向循环,即先循环列,在循环行来实现。

}

Ⅸ 在c语言二维数组中怎样交换两个数组元素中的字符串,请写代码.

int strcpy(char *s1,const char *s2);
开辟一个缓冲区,比如
char buff[100];//假设你的字符串不超过这么多

而你的而为数组为
char **argv;
其中argv[0] = "this is the first string";
argv[1] = "this is the seconde string";

你只须调用如下
strcpy(buff,argv[0]);
strcpy(argv[0],argv[1]);
strcpy(argv[1],buff);

一下是完整代码,并测试过
#include <stdio.h>
#include <string.h>

char argv[2][100]={ "This is the first string","This is the second string"};
// 存储字符串的二维数组,每个字符串最长为99个字节
char buff[100];
//缓冲区
int main()
{
printf("转换前:\n");
printf("argv[0] = %s\n",argv[0]);
printf("argv[1] = %s\n",argv[1]);

strcpy(buff,argv[0]);
strcpy(argv[0],argv[1]);
strcpy(argv[1],buff);

printf("转换后:\n");
printf("argv[0] = %s\n",argv[0]);
printf("argv[1] = %s\n",argv[1]);

return 0;
}

Ⅹ C语言二维数组元素交换

#include<stdio.h>
//字符的复制作了小小的修改
voidmy_strcpy(char*s1,char*s2){
inti;
for(i=0;s2[i]!='';i++){
s1[i]=s2[i];
}
s1[i]='';
}
voidarray_swap(charb[][7],intx,inty){
chars[8];
my_strcpy(s,b[y]);
my_strcpy(b[y],b[x]);
my_strcpy(b[x],s);

}
intmain(){
charb[][7]={"foo","bar","foobar"};
inti;
array_swap(b,0,2);
for(i=0;i<3;i++)
printf("%s ",b[i]);
}