Ⅰ 我想知道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]!='