當前位置:首頁 » 編程語言 » c語言數組字元交換位置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組字元交換位置

發布時間: 2023-06-12 18:40:12

A. c語言數組元素前後位置互換

#include<stdio.h>
char array[2][3];
void func(char array[2][3],int x1,int y1,int x2,int y2){
char t;
t=array[x1][y1];
array[x1][y1]=array[x2][y2];
array[x2][y2]=t;
}

int main(){
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%c",&array[i][j]);//註:連續輸入二維數組的值,不用加回車
func(array,0,1,1,1);
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%c ",array[i][j]);
printf("\n");
}
return 0;
}

B. c語言 數組元素交換 交換數組第一個位置和最後一個位置的數,輸出交換後數組,求大神幫忙看看該怎麼改

首先,這是對數組使用的概念上理解錯了。數組a[n]可用的數組元素一共有n個,從a[0]開始到a[n-1]結束,下面的圖是修改以後的程序。

C. c語言怎麼把兩個字元串交換位置

利用strcpy()函數。

chara[10]="abed",b[10]="efg",t[10];
strcpy(t,a);//a復制給t
strcpy(a,b);//b復制給a
strcpy(b,t);//t復制給b

函數功能是字元串復制,將第一個參數指定的字元串復制到第二個參數指定的位置
兩個參數都是字元串首地址。
使用strcpy需要 #include<string.h>

D. 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]
*/
//故此 初步想法應是通過反向循環,即先循環列,在循環行來實現。

}

E. 在c語言中如何將數組的最大值與最小值互換位置,求大神解答!!!

找到最大和最小值的下標,然後交換,例如:
#include <stdio.h>
main()
{
int a[10]={10,2,3,4,5,6,7,8,9,10},n=10;
int i1,i2,i;
i1=0;
for (i=0;i<n;i++)if (a[i]<a[i1]) i1=i;
i2=0;
for (i=0;i<n;i++)if (a[i]>a[i2]) i2=i;
i=a[i1]; a[i1]=a[i2];a[i2]=i;
for (i=0;i<n;i++) printf("%d ",a[i]);
return 0;
}

F. C語言,定義函數交換字元串數組

C語言中交換兩個字元串需要藉助strcpy函數或者使用自定義交換函數進行交換
如交換a,b數組中的字元串代碼:

char a[10] = "abed", b[10] = "efg", t[10];strcpy(t, a);//a復制給tstrcpy(a, b);//b復制給astrcpy(b, t);//t復制給b

附:strcpy函數詳情
原型聲明:

char *strcpy(char* dest, const char *src);

頭文件:

#include <string.h> 和 #include <stdio.h>

功能:把從src地址開始且含有NULL結束符的字元串復制到以dest開始的地址空間
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。返回指向dest的指針。

G. 在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;
}