1

私は、Thambola(ビンゴに似ています)と呼ばれるインドのゲームであるC言語でプログラムを書いています。このゲームでは、ユーザーは3x9のチケットを受け取り、コンピューターはユーザーに2番目のプログラム(これは1から90までランダムに番号を選択します)が選択した番号を入力するように求めます。入力した番号がチケットに存在する場合は、番号を「x」に変更する必要があります。これは、番号が削除されたことを意味します。ここで助けが必要です。すでに印刷されている数字を「x」に置き換えるにはどうすればよいですか?私はこのCを読みました-印刷されたアイテムを削除して交換しますが、27の番号を変更する必要があるため、役に立ちません。助けてください。コードの一部は次のとおりです。

int number,i,j;
const char x='x';

printf("\nEnter the number:");
scanf("%d",&number); // number entered by the user from the Picker

for (i=0;i<3;i++)
    for (j=0;j<9;j++)
        {if (ticket[i][j]==number)
            ticket[i][j]=x;
printf("%d",ticket[i][j]); //if the input number is present in the ticket, this should change it to 'x

    }

getchar();

}

4

2 に答える 2

0

コード スニペットの主な問題は、変数に値を割り当てる背後にあるロジックです。

誰でもわかるように、整数の配列がありますが、その要素の 1 つに char を割り当てたいとします。実際にはキャストによって行うことができますが、結果は 'x' の ASCII 値になります。

{if (ticket[i][j]==number) // number is an integer
            ticket[i][j]=x; // x is a char

「x」の ASCII 値は 120 であり、チケットで可能な数値の範囲外であるため、「x」をその整数値に安全にキャストし、それをその配列要素に割り当てることができます。印刷で 120 が表示された場合は、'x' を印刷します。

char の整数値が他の可能な整数値の範囲内にある状況では、別の整数値を選択し、この値を論理フローで「x」として扱います (たとえば、対応する整数に 0 を選択し、0 が print ' になる場合)。バツ')。

ncurses を使用するか、単にチケットの状態を出力して、変更されたチケットを出力用に出力する直前に画面をクリアすることができます。

于 2012-06-09T07:05:53.687 に答える