C语言输入五个字母,然后按照字典顺序排列后输出,哪里出错了

#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){inti,j;charword[5][20]... #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i, j;
char word[5][20];
char temp[20];
printf("5 words input:");
for (i = 0; i < 5; i++)
{
scanf("%s", &word[i]);
}

for (i = 0; i < 5; i++)
{
for (j = i + 1; j < 4;j++)
{
if (strcmp(word[i], word[j])>0)
{
strcpy(word[i], temp);
strcpy(word[j], word[i]);
strcpy(temp, word[j]);
}
}
}
printf("outputting after ordering:");
for (i = 1; i < 5; i++){
printf("%s",word[i][20]);
}
}
展开
 我来答
White_MouseYBZ
推荐于2016-05-21 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6695万
展开全部

你这是输入5个字符串排序的代码,不是输入5个字符排序的代码。


  1. strcpy(word[i], temp);
    strcpy(word[j], word[i]);
    strcpy(temp, word[j]);

    改成

    strcpy(temp,word[i] );

    strcpy(word[i], word[j]);

    strcpy(word[j], temp);

  2. 把for (i = 1; i < 5; i++)改成for (i = 0; i < 5; i++)。

  3. 把printf("%s",word[i][20]);改成 printf("%s ",word[i]);。

百度网友0ecab4f
2015-11-26 · TA获得超过1029个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:381万
展开全部

//是输入5个字母还是  5个字符串?看你的程序像是五个字符串啊。

//按照5个字母的理解给你写了一个,有问题追问
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
 int i, j;
 char word[5];
 char temp;
 printf("5 words input:");
 for (i = 0; i < 5; i++)
 {
  scanf("%c", &word[i]);
 }
 for (i = 0; i < 5; i++)
 {
  for (j = 0; j < 5-i-1;j++)
  {
   if (word[j]>word[j+1])
   {
    temp=word[j];
    word[j]= word[j+1];
     word[j+1]=temp;
   }
  }
 }
 printf("outputting after ordering:");
 for (i = 0; i < 5; i++){
  printf("%c",word[i]);
 }
 getchar();
 getchar();
 getchar();
}
更多追问追答
追问
五个字符
也就是五个单词
字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式