在主函数里面输入十个不等长的字符串,用函数对他们进行排序,并在主函数中进行输出

在主函数里面输入十个不等长的字符串,用函数对他们进行排序,并在主函数中进行输出。

#include<stdio.h>
#include<stdlib.h>
void swap(char (*p)[20],char (*q)[20]){
    int i,temp,j;
    for(i=0;i<9;i++){
        for(j=i+1;j<10;j++){
    
        if(strcmp(*(p+i),*(q+j))>1) {
            temp=*(*(p+i));
            *(*(p+i))=*(*(q+j));
            *(*(q+j))=temp;
        }    }
    }
    return;
}
int main(){
    char a[10][20];
    int i,j;
    
    printf("请输入十个字符串:\n");
    for(i=0;i<10;i++){
    scanf_s("%s",a,19);    
    }
    
    swap(a,a);
    
    printf("输出:\n");
    for(i=0;i<10;i++){

    for(j=0;a[i][j]!='\0';j++){

    printf("%c",a[i][j]);    }
    printf("\n");
        }
    return 0;
}

运行的结果:

img


应该改哪里呢?

scanf_s("%s",a,19);
->
scanf_s("%s",a[i],19);