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

c語言交換數組中元素

發布時間: 2022-07-26 01:52:54

c語言數組元素交換問題

數組交換的swap函數中

voidSWAP(double*a,double*b)//用於交換數組的元素
{
doubletemp;
temp=*a;
*a=*b;
*b=temp;
}
你傳進去的是double*a
但你定義的是doubletemp
類型都不一樣怎麼賦值!!

Ⅱ c語言求數組元素交換次序

假定數據長n,輸入一個整數m,
1、使數組的後n-m個元素移到前邊,前m-1個元素在數組中從最後位置倒序排列
#include
"stdio.h"
main()
{
int
i,n,m,t,j;
int
d[200];
printf("\n輸入n的值(n<200):");
scanf("%d",&n);
for(i=0;i<n;i++)d[i]=i;
printf("\n輸入m的值(m<200):");
scanf("%d",&m);
printf("\n輸出調整前的數據:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
//調整程序開始
for(i=0;i<m;i++)
{//n-m個數前移了
t=d[0];
for(j=1;j<n;j++)d[j-1]=d[j];
d[n-1]=t;
}
for(i=0;i<m/2;i++)
{//倒序
t=d[n-1-i];
d[n-1-i]=d[m+i];
d[m+i=t;
}
printf("\n輸出調整後的數據:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
}

Ⅲ 【萌新】C語言多次交換數組元素問題

不是多次使用或循環中使用就無法完成交換。而是
如果是a[4]={0,1,2,3};
swap(a[1],a[2]);swap(a[1],a[3]);
後,就成為:
a[ ]={0,3,1,2}
(先成為a[ ]={0,2,1,3},再成為a[ ]={0,3,1,2})
不知你說是的否這種情況?(要注意後次交換是在前次交換已經完成的情況下進行的)

Ⅳ c語言編寫交換數組元素

排下版吧,學習C語言還是嚴謹點好,這樣子太亂了

Ⅳ 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語言用指針和自定義函數實現數組元素的調換

#include <stdio.h>

#define N 10

void Swap ( int *a, int *b, int n);

int main(void)
{
int *a, *b;
int num1[N], num2[N];

for (a = num1; a < num1 + N; a++)
scanf ("%d", a);

for (b = num2; b < num2 + N; b++)
scanf ("%d", b);

a = num1;//重新指向首地址
b = num2;//重新指向首地址

Swap (a, b, N);
printf ("*********交換後**********\n");

for (a = num1; a < num1 + N; a++)
printf ("%3d", *a);

printf ("\n");

for (b = num2; b < num2 + N; b++)
printf ("%3d", *b);

return 0;
}
void Swap (int *a, int *b, int n)
{
int temp;
int i;

for (i = 0; i < n; i++)
{
temp = *(a + i);
*(a + i) = *(b + i);
*(b + i) = temp;
}
}

Ⅶ 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語言中怎樣交換兩個數組

逐個元素交換即可。

前提是兩個數組必須有同樣的長度

否則無法交換。

函數如下:

voidswap_array(int*a,int*b,intl)
{
inti,t;
for(i=0;i<l;i++)
{
t=a[i];
a[i]=b[i];
b[i]=t;
}
}

構建好兩個等長數組,調用這個函數就可以

a和b是兩個數組名, l為數組元素個數,即長度。

Ⅸ C語言中數組元素互換的問題

當index為0時,數組中下標為0的和下標為4-0的元素交換,也就是第一個和最後一個交換,(1,5)交換
當index為1時,數組中下標為1的和下標為4-1的元素交換,也就是第二個和倒數第二個交換,(2,4)交換
因為此數組元素的個數為奇數個,所以,最中間那個沒有必要交換,所以3原地不動
最後交換後的元素順序為54321

Ⅹ 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;
}