C语言大神速速现身,帮小弟解决此题! 题目描述 输入3个字符串,按从小到大的顺序输出。要求使用指针

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>
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=i+1;j<3;j++)
       {
        if  (strcmp(a[i],a[j])>0)
        {
        strcpy(temp,a[i]);
        strcpy (a[i],a[j]);
        strcpy (a[j],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);

        }

      }

    }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-23
关机,重启。题目做完了。
相似回答