C语言编程——冒泡排序法,要求:由主函数调用排序子函数,对n个整数进行从小到大的排序,谢了

如题所述

第1个回答  2011-12-08
#include <stdio.h>
#define MAXE 20 //线性表中最多元素个数
typedef int KeyType;
typedef char InfoType[10];
typedef struct //记录类型
{
KeyType key; //关键字项
InfoType data; //其他数据项,类型为InfoType
} RecType;
void BubbleSort(RecType R[],int n) //冒泡排序算法
{
int i,j,k;
RecType temp;
for (i=0;i<n-1;i++)
{
for (j=n-1;j>i;j--) //比较,找出本趟最小关键字的记录
if (R[j].key<R[j-1].key)
{
temp=R[j];
//R[j]与R[j-1]进行交换,将最小关键字记录前移
R[j]=R[j-1];
R[j-1]=temp;
}
printf(" i=%d ",i); //输出每一趟的排序结果
for (k=0;k<n;k++)
printf("%2d",R[k].key);
printf("\n");
}
}
void main()
{
int i,k,n=10;
KeyType a[]={9,8,7,6,5,4,3,2,1,0};
RecType R[MAXE];
for (i=0;i<n;i++)
R[i].key=a[i];
printf("\n");
printf(" 初始关键字 "); //输出初始关键字序列
for (k=0;k<n;k++)
printf("%2d",R[k].key);
printf("\n");
BubbleSort(R,n);
printf(" 最后结果 "); //输出初始关键字序列
for (k=0;k<n;k++)
printf("%2d",R[k].key);
printf("\n\n");
}

数字你可以自己改本回答被提问者采纳

C语言编程——冒泡排序法。要求:由主函数调用排序子函数,对n个整数进 ...
void sort(int a[],int n){ int i;int j;for(i=1;i<n;i++) \/\/n个程序 排n-1次 { for(j=0;j<n-i;j++){ if(a[j]>a[j+1]) \/\/从小到达,前面的比后面的大,则互换。{ int temp = a[j];a[j] = a[j+1];a[j+1] = temp;} } } } int main(){ int ...

C语言编程:将输入的N个整数采用冒泡排序按照从小到大的顺序排列并且输出...
void BubbleSort(int L[]) { \/\/ 对顺序表L作冒泡排序 int i,j,fini = 0;for (i = 1; i < n && !fini; i++) { fini = 1;for (j = 1; j <= n-i; j++)if (L[j] > L[j+1]) { L[0] = L[j];L[j] = L[j+1];L[j+1] = L[0];fini = 0;} } } ...

用c语言程序设计:输入5个整数,利用冒泡排序法,从小到大排序后输出。
include<stdio.h>void main(){int a[5];printf("请输入5个整数:");for(int val=0;val<=4;val++)scanf("%d",&a[val]);for(int i=0;i<=4;i++){for(int j=i+1;j<=4;j++){if(a[i]>a[j]){int tmp;tmp = a[i];a[i] = a[j];a[j] = tmp;}}}printf("排序后...

用C语言编写一个程序,求n个数中的最大值和最小值,要求用函数完成...
代码如下(用冒泡排序法):include <stdio.h>void bubble(int a[], int n){ int i, j, temp; for (j = 0; j < n - 1; j++) for (i = 0; i < n - 1 - j; i++) { if(a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1];...

C语言:编写函数用冒泡排序法对数组中的数据进行从小到大的排序.
int i,j,temp;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}之间写这个

编写一个对n个数进行排序(由小到大)的函数,在main()函数中输入n个数...
自定义函数sort(int *p, int n),功能是对n个数排序。在main函数中,调用它,对输入的任意个数排序。include<stdio.h> int sort(int*p,int n){ int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(p[i]>p[j]){ t=p[i];p[i]=p[j];p[j]=t;} } int main(){...

C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列
1、打开Visual stdio 2019软件新建空白c文件,在源文件处右击鼠标,选择添加下面的新建项,此时会弹出窗口:2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:3、接下来就可以编写程序了,首先最前面的部分为输入数字的部分,之后的程序会对用户输入的数字...

...键盘输入一个正整数N,再输入N个整数,按从小到大的顺序输出。_百度知 ...
main(){ int a[100],i,j,t,n;printf("Input N:\\n");scanf("%d",&n);printf("请再输入%d个数据:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("\\n");for(j=0;j<n-1;j++)\/\/冒泡排序进行从小到大排列 for(i=0;i<n-1-j;i++)if(a[i]>a[i+1]){t=...

c语言如何输入一个正整数N,再输入N个整数,按从小到大的顺序输出?
include<stdio.h> void main(){ int num[10000],i,j,temp,N,count=0;\/\/确定数组num的实际大小 printf("请输入一个大于0的整数:");scanf("%d",&N);\/\/限制数字n的值在0到10000之间 while(N<=0||N>=10000){ printf("你输入的数字不在0到10000之间,请重新输入!\\n\\n");printf("请...

C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序
代码如下(对10个整数进行升序排序):include<stdio.h> int main(){ int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};\/\/排序 for(i=1;i<10;i++)\/\/外循环控制排序趟数,n个数排n-1趟 { for(j=0;j<10-1;j++)\/\/内循环每趟比较的次数,第j趟比较n-i次 { if(a[j]>a...

相似回答