永发信息网

用起泡法给输入的字符按ASCN码排序从小到大输出 C语言

答案:3  悬赏:30  手机版
解决时间 2021-12-25 14:42
例如输入:reputation
应该输出:aeionprttu.
我的代码:
#include
#include
void main()
{
void sort(char string[]);
char str[80];
gets(str);
sort(str);
puts(str);
}
void sort(char string[])
{
int i,j;
char t;
for(i=0;i<=strlen(string);i++)
{
for(j=0;j<=strlen(string)-i;j++)
{
if(string[j]>string[j+1])
{t=string[j];string[j]=string[j+1];string[j+1]=t;}
}
}

}
输出的总是少两个字母。
最佳答案
1.首先关于冒泡法有几点说明:.
若数组中有N个数据,则第一论比较与交换的次数应该是N-1,第2轮比较与交换的次数为N-2……第i轮比较与交换的次数为N-i,……一共进行(n-1)轮的比较与交换。
2.数组的第一个元素的下标是0.即第一个元素为a[0],最后一个元素应该是a[n-1]
3.循环控制变量i和j的初始量都是0.
4.从上面的分析就可以知道出错的地方。
第一个循环控制中应该改成 for (i=0;i<=strlen(string)-2;j++);或者for(i=0;i 第二个循环改成for(j=0;j<=strlen(string)-i-1;j++),或者直接去掉一个=号

5.c语言是一门科学,很注重实验。有时候可以自己动手改动几个运算符试试。
6。学习愉快
全部回答
把两个循环句的=去了
void sort(char string[]) { int i,j; char t; for(i=strlen(string)-1;i>0;i--)//外循环自减,控制内循环结束边界 { for(j=0;jstring[j+1]) {t=string[j];string[j]=string[j+1];string[j+1]=t;} } } } 冒泡排序: 1 外层变量控制内层循环的结束条件,而非起始点 2 二重循环里,内层循环的控制变量和终止条件必然是一自加一自减 3 如果是无经过优化的冒泡,总共要比较len*(len-1)/2次 4 每次比较,总是比较相邻的两个数,不会发生其它位置的数的比较
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
化疗后掉头发头皮疼怎么办
-- Lori, did you told Mark the time of the
单选题Toplaybetter,alltheplayershaveto
生活费每个月都要问父母要钱,很不好意思,怎
一般男女朋友热恋期几个月
我国第二阶梯的主要地形有A.山地和高原B.高原
QQ语音问题
就业情况近义词
有书法家叫海民的吗
京剧是中国三大国粹之一,现在很多地方纷纷开
北京市水务局排水许可临时受理大厅办公位置在
线性代数中为什么deta=0而矩阵a却不一定是零
单选题“民之饥,以其上食税之多,是以饥。民
英雄联盟雷霆领主的法令怎么点出来
女方妈妈算好婚期还木有通知亲友,现在有些事
推荐资讯
好词好句大全四年级有题目的有哪些
生活中的洗涤问题大都与化学知识有关.下列有
黄石市下陆区地税局在什么地方啊,我要处理点
大气中会有以下3种气体,其中含量最少的气体是
迈克尔·杰克逊的唱功实际如何?他的音乐制作
汽车陪练哪家好哪家比较好
上林县金岸机动车检测有限公司位置在什么地方
桐乡市城管执法大队石门中队地址有知道的么?
力士lv109好还是l570
2017中国民族汉考的内容或作文题目
指南针的原理
白羊今日运势
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?