本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入格式:
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
输出格式:
按照以下格式输出排序后的结果:
After sorted:
每行一个字符串
输入样例:
red yellow blue black white
结尾无空行
输出样例:
After sorted:
black
blue
red
white
yellow
结尾无空行
就帮我看下我的代码问题就行,报错在sample等价和字符串长度取最大和最小的答案错误
#include<stdio.h>
#include<string.h>
int main()
{
int m=0,k,i,j,num=0,n,p,q;
int flag=0;
char a[500],*t,*b[50];
gets(a);
i=strlen(a);
a[i]=0;
for(k=0;k<i;k++)
{
if(a[k]!=' '&&flag==0)
{
num++;
flag=1;
b[m++]=&a[k];
}
if(a[k]==' '){
a[k]='\0';
flag=0;}
}
n=num-1;
for(p=0;p<num;p++)
{
for(q=p;q<num;q++)
{
if(strcmp(b[p],b[q])==1)
{
t=b[p];
b[p]=b[q];
b[q]=t;
}
}
}
printf("After sorted:\n");
for(j=0;j<num;j++)
{
printf("%s",b[j]);
if(j!=num-1)
printf("\n");
}
return 0;
}