#include<stdio.h>
#include<string.h>
char c[5][80];
int main()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
putchar(c[i][j]);
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
if(strcmp(c[i][j],c[i+1][j])>0)
{
char t=c[i+1][j];
c[i+1][j]=c[i][j];
c[i][j]=t;
}
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
printf("%c",c[i][j]);
}
return 0;
}
}
求大佬帮我看看啊55555
修改如下,供参考:
include<stdio.h>
#include<string.h>
char c[5][80];
int main()
{
char t[80];
for(int i=0;i<5;i++)//连续输入5个字符串
gets(c[i]);
printf("排序前:\n");
for(int i=0;i<5;i++)//输出 5 个字符串
{
//for(int j=0;j<80;j++)
//{
puts(c[i]);//putchar(c[i][j]);
//}
}
for(int i=0;i<5-1;i++)
{
for(int j=0;j<5-i-1;j++) //for(int j=0;j<80;j++)
{
if(strcmp(c[j],c[j+1])>0)//if(strcmp(c[i][j],c[i+1][j])>0)
{
strcpy(t,c[j]); //char t=c[i+1][j];
strcpy(c[j],c[j+1]);//c[i+1][j]=c[i][j];
strcpy(c[j+1],t); //c[i][j]=t;
}
}
}
printf("排序后的字符串:\n");
for(int i=0;i<5;i++)//输出排序后的字符串
{
//for(int j=0;j<80;j++)
//{
puts(c[i]); //printf("%c",c[i][j]);
//}
}
return 0;
}
strcmp(c[i][j],c[i+1][j])
这里的参数,你传递的是char字符。
比较的是字符串,而不是字符。
#include<stdio.h>
#include<string.h>
char c[5][80];
int main()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
putchar(c[i][j]);
}
}
for(int j=0;j<4;j++)
{
for(int i<0;i <4-j;i++) {
if(strcmp(c[i],c[i+1])>0){
string t=c[i+1];
c[i+1]=c[i];
c[i]=t;
}
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<80;j++)
{
printf("%c",c[i][j]);
}
return 0;
}
}
strcmp函数比较的是字符串,如果你要比较特定字符大小,直接比较就行。