一个简单的排序问题!!!!
来源:百度知道 编辑:UC知道 时间:2024/08/22 00:26:01
假如有3个数a=1,b=3,c=2.则排序的结果不输出数字而输出字母,如上面的答案为输出 a ,c ,b.这应该如何用c语言实现呢?
希望大家的回答能把3个数字推广到n个数字.....
谢谢了!!!
100分!!
请大侠给各简单的小程序嘛 我的结构学的不好呀 谢谢!!!
希望大家的回答能把3个数字推广到n个数字.....
谢谢了!!!
100分!!
请大侠给各简单的小程序嘛 我的结构学的不好呀 谢谢!!!
可以用一个结构来实现
结构的一个域放数字,一个域放对应的字母
针对数字排序,输出时 输出字母域
代码如下:(规模变为n时,把里面的3换为n即可)
#include<stdio.h>
struct st
{
int i;
char c;
};
void main()
{
int j,k,ti;
char tc;
st s[3];
s[0].i=1;
s[0].c='a';
s[1].i=3;
s[1].c='b';
s[2].i=2;
s[2].c='c';
for(j=1;j<3;j++)/*冒泡排序 升序*/
{
for(k=0;k<3-j;k++)
{
if(s[k].i>s[k+1].i)
{
ti=s[k].i;
s[k].i=s[k+1].i;
s[k+1].i=ti;
tc=s[k].c;
s[k].c=s[k+1].c;
s[k+1].c=tc;
}
}
}
for(j=0;j<3;j++)
{
printf("%c ",s[j].c);
}
printf("\n");
}