私はAbsolute Beginner第2版のCプログラミングの第8章チャレンジ3に取り組んでいます。プログラムはアルファベット順に名前の配列をソートすることになっています。あらかじめ定義された名前のリストを並べ替える
私のプログラムは動作しません。 sort()
のない主な機能は動作しますが、ソート機能はうんざりです。また、警告メッセージに基づいて、strcmp()
が誤って使用されているようです。
私が使用しているコンパイラはgccで、nanoでコードを書いています。
/* Uses strcmp() in a different function
to sort a list of names in alphabetical order */
#include <stdio.h>
#include <string.h>
void sort(char*, int);
void main() {
char strStates[4][11] = { "Florida", "Oregon", "California", "Georgia" };
sort(*strStates, 4); // 4 is the number of string in the array
printf("\nFour States Listed in Alphabetical Order\n");
int x;
for(x = 0; x < 4; x++)
printf("\n%s", strStates[x]);
}
void sort(char* strNames, int iStrings) {
char strPlaceholder[11] = { 0 };
int x;
int y;
for(x = 0; x < iStrings; x++) {
for(y = 0; y < iStrings - 1; y++) {
if(strcmp(strNames[y], strNames[y + 1]) > 0) {
strcpy(strPlaceholder, strNames[y + 1]);
strcpy(strNames[y + 1], strNames[y]);
strcpy(strNames[y], strPlaceholder);
}
}
}
}
は、問題の直接あなたのプログラムテキストを含めてください – FieryCat
にあなたのコードを入れてください。コードを編集ボックスにコピーします。 OKを確認し、プレビューを無視してください。次にコードを選択し、ボックスの上にある** '{}' **ボタンを使用してインデントします。今すぐプレビューを確認してください。コピーするコードにタブがないことを確認してください。それはあなたがそれをインデントするときにレイアウトを破壊するでしょう。 –
'sort'の引数の型が正しくありません。 – BLUEPIXY