输入5个字符串,按由小到大的顺序输出,试编写相应程序。
//输入5个字符串,按由小到大的顺序输出,试编写相应程序。#include<stdio.h>#include<string.h>voidmaopao(char*p[]){...
//输入5个字符串,按由小到大的顺序输出,试编写相应程序。
#include <stdio.h>
#include <string.h>
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呢?我大脑逻辑不清晰了啊。。 展开
#include <stdio.h>
#include <string.h>
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呢?我大脑逻辑不清晰了啊。。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询