ご迷惑をおかけして申し訳ありません。エラーを見つけようとするためのトラブルシューティングを行っていて、私は空になっています。Cでリストをアルファベット順に並べ替え、追加入力
入力のリストをアルファベット順に並べ替えるプログラムを作成する必要があります。最初の入力は、入力数の整数値です。各入力は改行文字で終わります。
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");
}
問題:単語の入力にはword_total + 1が必要です。たとえば、word_total = 5の場合、6単語を入力する必要があります。入力された最後の単語は無視され、「ソートされたリスト」には含まれません。私は問題を次のように修正することができます: "Sorted list"は短い1語です。私は "<"を "< ="などに変更しようとしましたが、修正が見つかりませんでした。
ありがとうございました!その任意のの空白文字、実際の手段を注意してください。
彼は改行を食べる必要はありません。次の 'scanf()'は '%s'がそれを行うので、それを自動的にスキップします。 –
@JohnBollinger良い点! – Jens