0

C プログラム 完全な初心者です。生徒向けに多肢選択式の語彙練習プログラムを作りたいです。4 つの個別の変数 a、b、c、d を作成したくありません。配列を使用するにはどうすればよいですか? または、a、b、c、d の 4 文字を保存し、プログラムに質問が正しいかどうかを確認させるたびにそれらを参照するより良い方法は何ですか。私がこれまでに使用したコードを見てください。私が本当に感謝する助け。ありがとうございました。

int main (void)
{    
    char s;
    const char *answer[3];
    answer[0]="a";
    answer[1]="b";
    answer[2]="c";
    answer[3]="d";
    int i=0;
    float count;


    printf (" Listo para empezar?\n\n Please type 's' for si or 'n' for no.\n");
    scanf ("%c",&s);
          if (s='s'){
                printf ("Bueno. Ya Empezamos!");
                }   

    for (count=0;count<=4;count++){
        printf ("1.Que significa la palabra 'conocer'\n");
        printf ("a.\t to like b.\t to know\t c. to do\t d. to eat\n");

        /*Where I need help"*/
        scanf ("%s",&answer);
        if (answer =answer[1])
        {
        printf ("Correcto!\n");
        }
       else {
       printf ("Equivocado!\n 'conocer'significa: to know\n")
       }`enter code here`
4

1 に答える 1

1

の代わりに、配列 as の宣言でchar answer[4]十分ですconst char *answer[3]。配列には0からn-1までのインデックスが付けられます。n は保持するアイテムの数です。したがって、配列を宣言するときはサイズ n にする必要があり、i 番目の位置である値にアクセスしている間、そのインデックスは実際には i-1 であり、これはすでに正しく行われています。

次は、ユーザーが入力として単一の文字を入力するためです。

scanf("%c",&x)あなたのためにうまくいくはずです。

これを行うscanf("%s",&answer)と、実際の回答配列に保存した値が上書きされます。xしたがって、上記の例で行ったように、別の文字変数で入力を取得する必要があります。x次に、ifステートメント内のの値を として単純に比較できますif(x == answer[1])

質問をどのように生成し、正しいオプションを変更するのかはわかりませんが、正しい答えをチェックするためのコードの一部はそれに依存します。

于 2015-04-01T03:41:19.133 に答える