永发信息网

C语言三个变量之间的怎么交换?四个呢、五个呢……n个呢?

答案:6  悬赏:80  手机版
解决时间 2021-04-26 01:35
计算机
最佳答案

3个:


t = a1;


a1 = a2;


a2 = a3;


a3 = t;


全部回答

看看这个:

一.希尔(Shell)排序法

#include <stdio.h>

void sort(int v[],int n) { int gap,i,j,temp; for(gap=n/2;gap>0;gap /= 2) { for(i=gap;i<n;i++) { for(j=i-gap;(j >= 0) && (v[j] > v[j+gap]);j -= gap ) { temp=v[j]; v[j]=v[j+gap]; v[j+gap]=temp; } } } }

算法:请看【动画模拟演示】。

二.二分插入法

void HalfInsertSort(int a[], int len) { int i, j,temp; int low, high, mid; for (i=1; i<len; i++) { temp = a[i]; low = 0; high = i-1; while (low <= high) { mid = (low + high) / 2; if (a[mid] > temp) { high = mid-1; } else { low = mid+1; } } for (j=i-1; j>high; j--) { a[j+1] = a[j]; } a[high+1] = temp; } }

三.直接插入法

void InsertionSort(int input[],int len) { int i,j,temp; for (i = 1; i < len; i++) { temp = input[i]; for (j = i - 1;j>-1&&input[j] > temp ; j--) { input[j + 1] = input[j]; input[j] = temp; } } }

四.带哨兵的直接排序法

void InsertionSortWithPiquet(int input[],int len) { int i,j; for (i = 2; i < len; i++) { input[0] = input[i]; for (j = i - 1; input[j] > input[0] ; j--) { input[j + 1] = input[j]; input[j] = input[0]; } } }

五.冒泡法

void Bublesort(int a[],int n) { int i,j,k; for(j=0;j<n;j++) { for(i=0;i<n-j;i++) { if(a[i]>a[i+1]) { k=a[i]; a[i]=a[i+1]; a[i+1]=k; } } } }

六.选择排序法

void Selectsort(int A[],int n) { int i,j,min,temp; for(i=0;i<n;i++) { min=i; for(j=i+1;j<=n;j++) { if(A[min]>A[j]) { temp=A[i]; A[i]=A[j]; A[j]=temp; } } } }

七.快速排序

void Quick_sort(int data[],int low,int high) { int mid; if(low<high) { mid=Partition(data,low,high); Quick_sort(data,low,mid-1); Quick_sort(data,mid+1,high); } } int Partition(int data[],int low,int high) { int mid; data[0]=data[low]; mid=data[low]; while(low < high) { while((low < high) && (data[high] >= mid)) { --high; } data[low]=data[high]; while((low < high) && (data[low] < mid)) { ++low; } data[high]=data[low]; } data[low]=data[0]; return low; }

八.堆排序

void HeapAdjust(int data[],int s,int m) { int j,rc; rc=data[s]; for(j=2*s;j<=m;j*=2) { if(j<m && data[j]<data[j+1]) ++j; if(rc>data[j]) break; data[s]=data[j]; s=j; } data[s]=rc; }

void Heap_sort(int data[],int long_n) { int i,temp; for(i=long_n/2;i>0;--i) { HeapAdjust(data,i,long_n); } for(i=long_n;i>0;--i) { temp=data[1]; data[1]=data[i]; data[i]=temp; HeapAdjust(data,1,i-1); } }

本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/wengwuzi/archive/2008/10/05/3017968.aspx

问题是你想怎么交换????

顺序换 两头换 中间到两头换 ???

n是确切的,还是随机的?

变量是哪种,是同种之间换,还是不同种之间换?

有要求吗?是一个变量只能换一次,还是没限制的?

具体你要什么结果?

还有为什么要换,你要处理什么问题,我很想知道。

???

3个变量之间的交换,不知你要遵循什么原则,如果是有顺序的,那就是排序了,4个5个都一样。。。。
3个以上就是排序了,用循环+交换就行了
三个四个五个多了的话交换的方式多种多样,,,,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有共同的语言地方那是爱吗?
福建莆田哪有办港澳旅游签证
AMD PhenomII X3 N830(2.1GHz)具体什么意思
初一数学,急!!!
为什么有的人那么神奇
C1的驾驶证,多长时间检证,多长时间换证?
请问各位大哥N86 IMEL:354213035355818是大陆
我等级好底呀
天龙八部门派问题
为什么音速会这样?
落笔方知学识浅的下联
我的QQ飞车现在111J,什么时候可以到120J啊?
怎么样才算一个好学生?
问道:法木PK体木?
DNF第八章51神之手带时装和兔子、拿哪把武器
推荐资讯
我家70多岁老人出现便血该怎么办?
请问一下大家,男人的第一次会很痛吗?
i wana days passed with passio
PS3能不能玩PS2的游戏~~给详细点说明怎么玩。
被一个人伤了怎么办
英语单词辨音五条1、lunch child teach schoo
从手机下载添加图片到QQ空间如何操作
我的电脑,文件夹==打不开怎么办
thinkpad MZ3 都带有迅盘吗? 在哪里 作用是
在700到800这个价位的诺基亚手机那种型号比较
苏州腾铃电动车维修点在哪里?
舍的才会快乐吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?