C语言大神速速现身,帮小弟解决此题!
题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入格式
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入
China
CLOCK
deal
样例输出
CLOCK
China
deal
我的代码如下,大神看看是什么地方错了?!
题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入格式
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入
China
CLOCK
deal
样例输出
CLOCK
China
deal
我的代码如下,大神帮我看看哪里错了?
#include <stdio.h>
#include <string.h>
int main()
{
char a[3][100],temp[100];int i,j;
for (i=0;i<3;i++)
{
scanf("%s",a[i]);
}
for (i=0;i<2;i++)
{
for (j=0;i+j<=2;i++)
{
if (strcmp(a[j],a[j+1])>0)
{
strcpy(temp,a[j]);
strcpy (a[j],a[j+1]);
strcpy (a[j+1],temp);
}
}
}
for (i=0;i<3;i++)
{
printf("%s\n",a[i]);
}
return 0;
}
ä¸å¯¹
追çæåªæ¯ä¿®æ¹ä½ çï¼å¦æè¦ç¨æéï¼å¯ä»¥è°ç¨å½æ°ã#include <stdio.h>
#include <string.h>
void sort(char (*p)[100],int n);
int main()
{
char a[3][100];
int i;
for (i=0;i<3;i++)
scanf("%s",a[i]);
sort(a,3);
for (i=0;i<3;i++)
printf("%s\n",a[i]);
return 0;
}
void sort(char (*p)[100],int n)
{
int i,j;
char temp[100];
for (i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
if (strcmp(p[i],p[j])>0)
{
strcpy(temp,p[i]);
strcpy (p[i],p[j]);
strcpy (p[j],temp);
}
}
}
}