当前位置:首页 » 编程语言 » 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;
}