您的位置首页百科问答

输入5个字符串,按由小到大的顺序输出,试编写相应程序。

输入5个字符串,按由小到大的顺序输出,试编写相应程序。

的有关信息介绍如下:

问题补充说明://输入5个字符串,按由小到大的顺序输出,试编写相应程序。#include#includevoidmaopao(char*p[]){inti,j,k;char*t;for(i=0;i<4;i++){for(j=0;j<4-i;j++){if(strcm... //输入5个字符串,按由小到大的顺序输出,试编写相应程序。#include #include void maopao(char *p[]){ int i,j,k; char *t; for (i=0; i<4; i++) { for (j=0; j<4-i; j++) { if (strcmp(p[j],p[j+1])>0) { t=p[j]; p[j]=p[j+1]; p[j+1]=t; } } } for (k=0; k<5; k++) { puts(p[k]); } }int main(){ printf("Please input:"); int i; char a[5][80]; char *p[5]; for (i=0;i<5; i++) { scanf("%s",&a[i]); p[i]=a[i]; } maopao(p); return 0;}程序是对的,但是我的问题就一个,函数maopao里的第三第四行为啥都是<4而不是5呢?我大脑逻辑不清晰了啊。。 展开

输入5个字符串,按由小到大的顺序输出,试编写相应程序。

你输入的是五个字符串,然后你进入比较的时候仔细看你写的strcmp(p[j],p[j+1])>0里面是p[j]和p[j+1],注意看是j+1,假设j=3的时候,就是p[3]和p[4],如果是5的话,p[4]和360问答p[5]比,你根本没有p[5]这个元素,拿什么来比