【发布时间】:2017-04-06 17:53:11
【问题描述】:
很抱歉提出补救问题。一直在排除故障以尝试查找错误,但我发现是空的。
我需要编写一个按字母顺序排列输入列表的程序。第一个输入是输入数量的整数值。每个输入都以换行符结束。
int main()
{
int word_total;
char word_in[100][30], t[30];
int i, j;
printf("\nPlease the number of words you wish to sort: \n");
scanf("%d", &word_total);
printf("\nPlease enter a single word at a time. After each word, press return.\n");
for (i = 0; i < (word_total); i++)
{
scanf("%s\n", word_in[i]);
}
for (i = 1; i < (word_total); i++)
{
for (j = 1; j < (word_total); j++)
{
if (strcmp(word_in[j - 1], word_in[j]) > 0)
{
strcpy(t, word_in[j - 1]);
strcpy(word_in[j - 1], word_in[j]);
strcpy(word_in[j], t);
}
}
}
printf("\nSorted list:\n");
for (i = 0; i < (word_total); i++)
{
printf("%s\n", word_in[i]);
}
printf("\n");
}
问题:words的输入取word_total + 1。比如word_total = 5,我要输入6个words。输入的最后一个单词将被忽略并且不包含在“排序列表”中。我可以通过以下方式解决问题:
for (i = 0; i < (word_total - 1); i++)
{
scanf("%s\n", word_in[i]);
}
但是“排序列表”只是一个单词。我尝试将“
感谢您的帮助!
【问题讨论】:
标签: c