- /**********************************************************************************
- 17. 编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子
- 中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度
- 相同。例如:
- 输入:
- THE PRICE OFBREAD IS ¥1 25 PER POUND
- 输出:
- ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU
- 并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。
- *********************************************************************************/
- #include <stdio.h>
- void SortLetters(char sort[], int n)
- {
- int i,j;
- //插入排序
- for(i=1; i<n; i++)
- {
- char temp;
- temp = sort[i];
- for(j=i-1; j>=0; j--)
- {
- if(sort[j] > temp)
- {
- sort[j+1] = sort[j];
- }
- else break;
- }
- sort[j+1] = temp;
- }
- }
- void main()
- {
- int i,k;
- char letters[61];
- char sort[60];
- printf("请输入不少于60个字符:/n");
- gets(letters);
- for(i=0,k=0; letters[i] != '/0'; i++)
- {
- if(letters[i]>='A' && letters[i]<='Z')
- {
- sort[k++] = letters[i];
- }
- }
- SortLetters(sort,k);
- for(; i>=0; i--)
- {
- if(letters[i]>='A' && letters[i]<='Z')
- {
- letters[i] = sort[--k];
- }
- }
- printf("%s/n",letters);
- }
练习17
最新推荐文章于 2024-07-06 20:07:06 发布