100分求一个C语言小程序:

输入一行字符,字符最多30个,输出的结果按其ASCII码值由小到大的顺序排列。例如:输入:afc,输出:acf... 输入一行字符,字符最多30个,输出的结果按其ASCII码值由小到大的顺序排列。例如:输入:afc,输出:acf 展开
 我来答
jackys2007
2008-06-20 · TA获得超过1913个赞
知道小有建树答主
回答量:828
采纳率:100%
帮助的人:928万
展开全部
#include <stdio.h>
#include <string.h>
int main(void)
{
char ch;
char s[30];
int i,j;
int len;

printf("Enter a string: \n");
scanf("%s",s);
len=strlen(s);

for(ch=s[0],i=0;i<len;i++)
for(j=i;j<len;j++)
{
if(s[i]>s[j])
{
ch=s[i];
s[i]=s[j];
s[j]=ch;
}
}
for(i=0;i<len;i++)
printf("%c",s[i]);

return 0;
}
注意,字符串输入中间不能有空白字符和0
L_o_o_n_i_e
2008-06-20 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5224万
展开全部
输入一行字符,允许空白等符号,排队输出。

#include <stdio.h>
void main(void)
{
char str[100];
int i,j,len,k;

printf("enter one line string\n");
fgets(str,99,stdin);
len = strlen(str);
len=len-1;
str[len]= '\0';

for (i=0;i<len-1;i++)
for (j=i+1;j<len;j++)
if (str[i]>str[j]){ k=str[i];str[i]=str[j];str[j]=k;};
printf("%s",str);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a6bf412
2008-06-20 · TA获得超过1123个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:760万
展开全部
//VC下编译通过,运行正常
#include <stdio.h>

void sort(char str[])
{
char *p, *q, *r, c;
for(p=str; *p; p++)
{
for(q=r=p; *q; q++)
if(*r > *q) r = q;
if(r != q)
{
c = *r;
*r = *p;
*p = c;
}
}
for (p=str; *p; p++)
{
for(q=p; *p==*q; q++);
strcpy(p+1, q);
}

}

void main()
{
char str[30];
printf("请输入字符串:");
scanf("%s",str);
sort(str);
printf("排序后为:%s\n",str);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡老猫
2008-06-20 · TA获得超过2622个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:488万
展开全部
简洁,明了,高效:
#include"stdio.h"
#define N 30
queue(char a[N])
{
int i,j;
char t;
for(i=0;*(a+i)!='\0';i++)
{
for(j=i+1;*(a+j)!='\0';j++)
if(*(a+i)>*(a+j))
{
t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
}
}
}
main()
{
char a[N];
printf("\nInput:");
scanf("%s",a);
queue(a);
printf("\nAfter queue:");
printf("%s",a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love154139
2008-06-20 · TA获得超过230个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:279万
展开全部
#include <stdio.h>

void main()
{
char x[30],t;
int i,j;
printf("请输入字符:");
scanf("%s",x);
for(i=0;i<30;i++)
{
if(x[i]=='\0')
break;
for(j=i+1;j<30;j++)
if(x[j]<x[i])
{
if(x[j]=='\0')
break;
t=x[j];
x[j]=x[i];
x[i]=t;

}
}
printf("%s\n",x);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangtqqq
2008-06-20 · TA获得超过274个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:73.3万
展开全部
//这个程序是在VC6.0中测试通过.
#include<stdio.h>
#include<string.h>
#define MAX 30

typedef int KeyType;
typedef char ElemType[10];
typedef struct
{
KeyType key;
ElemType data;
}SqList;

void SelectSort(SqList R[],int n)//直接选择排序算法
{
int i,j,k;
SqList tmp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(R[j].key<R[k].key)
k=j;
tmp=R[i];
R[i]=R[k];
R[k]=tmp;
}
}

void main()
{
SqList str[MAX];
printf("输入字符串(以'*'结束):\n");
char ch;
int count=0;
ch=getchar();
while(ch!='*' && count<30)//遇到*或字符串越界 退出循环
{
str[count++].key=ch;
ch=getchar();
}

SelectSort(str,count);

for(int i=0;i<count;i++)
printf("%c",str[i].key);
printf("\n");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式