主题:一道简单的排序题目,请大家帮忙~!
zzyaict
[专家分:30] 发布于 2005-12-29 12:18:00
输入7个个位数进行由小到大进行排序
要求:
1.键盘输入7个个位数并显示,每个数之间有一定的距离
2.换行输出排序后的数据
回复列表 (共2个回复)
沙发
nlxx [专家分:10] 发布于 2005-12-29 13:34:00
#include <stdio.h>
#include<stdlib.h>
#include<string>
#define MAXSIZE 100
typedef int keytype;
typedef struct{
keytype key;
}
recordtype;
typedef struct {
recordtype r[MAXSIZE+1];
int length;
}table;
/*****************************************/
/* 冒泡排序算法 */
/* 文件名bubbsort.c,函数名bubblesort() */
/*****************************************/
void bubblesort(table *tab)
{
int i,j,done;
i=1;done=1;
while(i<=tab->length&&done) /*最多进行tab->length次冒泡,如没有发生交换则结束*/
{
done=0;
for(j=1;j<=tab->length-i;j++)
if(tab->r[j+1].key<tab->r[j].key)
{
tab->r[0].key=tab->r[j].key; /*以没有用到的第0个元素作为中间单元进行交换*/
tab->r[j].key=tab->r[j+1].key;
tab->r[j+1].key=tab->r[0].key;
done=1;
}
i++;
}
}
void main()
{
table tab;
int i;
tab.length=7;
printf("请输入七个数:\n");
for(i=1;i<=7;i++)
scanf("%d",&tab.r[i].key);
bubblesort(&tab);
printf("这七个数排序后为:\n");
for(i=1;i<=7;i++)
printf(" %d",tab.r[i].key);
}
板凳
zzyaict [专家分:30] 发布于 2005-12-29 18:25:00
可以帮我把这个题目用汇编写出来么?[em14]
我来回复