#define N 20
#include <stdio.h>
#include <string.h>
int main()
{
char s[N][2];
char a=' ';
int i,j,n=0;
scanf("%s",&a);
do
{
strcpy(s[0],a);
for(j=n;j>0;j--)
{
if(s[j]>s[0]) {strcpy(s[j+1],s[j]);continue;}
break;
}
strcpy(s[j+1],s[0]);
n++;
}while((a=getchar())!='\n');
for(i=1;i<=n;i++)
printf("%s",s[i]);
printf("\n");
return 0;
}
你的问题不在s,而在a
a应该定义成char[],而不是char
char s[N][2]将s定义成了二维数组,所以用s[0]会错误,看了你的程序,并不需要二维数组,定义为char s[N]即可。
strcpy(s[0],&a);