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

2025-03-20 22:01:25
推荐回答(2个)
回答(1):

你这是输入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]);。

回答(2):

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

//按照5个字母的理解给你写了一个,有问题追问
#include
#include
#include
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();
}