没有排除除了26个英文字母其他字符如回车,空格,数字这些也会当字符进入排序,按ASCII码大小排序的。参考下吧,有问题的话请提出,我再修改
#include<stdio.h>
#define N 20
void input(char arr[N]);
void sort(char arr[N]);
void output(char arr[N]);
int m;
int main()
{
char arr[N];
input(arr);
sort(arr);
return 0;
}
void input(char arr[N])
{
printf("请输入字符串,不超过20个字符,Enter确认.\n\n");
printf("也可以提前输入Enter结束数据输入.\n\n");
for(m=0;m<N;m++)
{
scanf("%c",&arr[m]);
if(arr[m]=='\n')
break;
}
printf("输入的字符串为:\n");
for(m=0;m<N;m++)
{
if(arr[m]=='\n')
break;
printf("%c",arr[m]);
}
printf("\n");
}
void sort(char arr[N])
{
int i,j;
char temp;
for(i=0;i<m;i++)
{
if(arr[i]=='\n')
break;
for(j=i+1;j<m;j++)
{
if(arr[i]<arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
printf("字符串升序排序:");
output(arr);
}
void output(char arr[N])
{
int i;
for(i=m;i>=0;i--)
printf("%c",arr[i]);
printf("\n");
}
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
[此贴子已经被作者于2016-5-5 16:46编辑过]