100分求一个C语言小程序:
输入一行字符,字符最多30个,输出的结果按其ASCII码值由小到大的顺序排列。例如:输入:afc,输出:acf...
输入一行字符,字符最多30个,输出的结果按其ASCII码值由小到大的顺序排列。例如:输入:afc,输出:acf
展开
7个回答
展开全部
#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
#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
展开全部
输入一行字符,允许空白等符号,排队输出。
#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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简洁,明了,高效:
#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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//这个程序是在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");
}
#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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询