C语言考试,在线等,急!!!!关于字符排序问题 5

乌有国皇帝在学习程序设计,他发现编程非常有意思,于是办法圣旨建立了自己的排序规则,圣旨规定:要按照数字字符、小写字母、大写英文字母顺序排序,且字符”从小到大"的排序规则是... 乌有国皇帝在学习程序设计,他发现编程非常有意思,于是办法圣旨建立了自己的排序规则,圣旨规定:要按照数字字符、小写字母、大写英文字母顺序排序,且字符 ”从小到大" 的排序规则是:9, 8, 7, ... , 0, z, y, x, ... , a, Z, Y, X, ..., A。

请你按照乌有国国王颁布的规则完成排序程序。

输入:串长不超过 50 的待排序字符串(使用 gets 函数)

输出:按乌有国规则升序排列后的字符串

例如:
输入字符串:ABC123abc
输出字符串:321cbaCBA
展开
 我来答
灰太狼一拳把自己肚子打扁疼的嗷嗷叫
推荐于2016-08-12 · TA获得超过230个赞
知道小有建树答主
回答量:273
采纳率:90%
帮助的人:119万
展开全部
/*
*百度知道
*/
#include <STDIO.H>
#include <STRING.H>
#include <STDLIB.H>
void _sort(char *array,int length)
{
 int i;
 int j;
 for(i = 0;i<length;i++)
  for(j = 0;j<length;j++)
   if(*(array + i) > *(array + j))
  {
   *(array + i) ^= *(array + j);
   *(array + j) ^= *(array + i);
   *(array + i) ^= *(array + j);
  }
}
 
int main(void)
{
 char *str;
 int i = 0;
 char num_str[50] = {0};
 int num = 0;
 char big_letter_str[50] = {0};
 int big_letter = 0;
 char little_letter_str[50] = {0};
 int little_letter = 0;
 str = (char *)malloc(50 * sizeof(char));
 printf("input a string:");
 
 gets(str);
 while(*(str + i)!='\0')
 {
  if((*(str + i))>=48 && (*(str + i))<=57)
   num_str[num ++] = *(str + i);
  if((*(str + i))>=65 && (*(str + i))<=90)
   big_letter_str[big_letter ++] = *(str + i);
  if((*(str + i))>=97 && (*(str + i))<=122)
   little_letter_str[little_letter ++] = *(str + i);
  i++;
 }
 /*
 *检验筛选结果
 puts(num_str);
 puts(little_letter_str);
 puts(big_letter_str);
 */
 _sort( num_str, strlen(num_str));
 _sort( big_letter_str, strlen(big_letter_str));
 _sort( little_letter_str, strlen(little_letter_str));
 printf("%s%s%s\n",num_str,little_letter_str,big_letter_str);
 
 return 0;
}
rxrrxr123
2015-05-08
知道答主
回答量:3
采纳率:0%
帮助的人:3337
展开全部
用if句把输入的结果先分类,逐个排序,最后合到一个数组里
追问
麻烦写一下行吗,我现在快没时间了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
貂丝男士_
2015-05-08
知道答主
回答量:1
采纳率:0%
帮助的人:1249
展开全部
同学,你不好好在图书馆一号机房考试,竟然上网作弊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式