フルクレジットを受け取るために私の宿題のためのポインタの使用を示す必要があります。Cポインタの問題
私はポインタに問題があります。私の宿題はウサギとカメの競争をシミュレートすることです。レースは1で始まり、70で終了する。時間のパーセンテージに応じて、ウサギとカメは速くまたは遅く進んでもよく、少数または多数の山の中に落ちるかもしれないし、ウサギが眠っているかもしれない。レースは70歳になると終了し、ポジションはマイナスにはなりません(最後のwhileとifs)。スイッチは動きに関連するすべてを行います。スイッチが進んでいるか、道路から外れている場合は、スイッチの内側の値のために気づくでしょう。
私の問題はポインタにあります。私はそれらを使用しなければならないし、彼らはf **私です!助けてください:
コード:
#include <stdio.h>
int main(void)
{
int x, post, posl, num1, num2;
int *ptrt;
int *ptrl;
ptrt=&post;
ptrl=&posl;
printf("BANG!!!!\nY ARRANCAN\n");
post=posl=1;
do{
num1 = rand() % 10;
num2 = rand() % 10;
switch (num1){
case '0': *ptrt=&post+3; break;
case '1': *ptrt=&post+3; break;
case '2': *ptrt=&post+3; break;
case '3': *ptrt=&post+3; break;
case '4': *ptrt=&post+3; break;
case '5': *ptrt-=&post+6; break;
case '6': *ptrt-=&post+6; break;
case '7': *ptrt+=&post+1; break;
case '8': *ptrt+=&post+1; break;
case '9': *ptrt+=&post+1; break;
}
switch (num2){
case '2': *ptrl=&posl+9; break;
case '3': *ptrl=&posl+9; break;
case '4': *ptrl=&posl-12; break;
case '5': *ptrl=&posl+1; break;
case '6': *ptrl=&posl+1; break;
case '7': *ptrl=&posl+1; break;
case '8': *ptrl=&posl-2; break;
case '9': *ptrl=&posl-2; break;
}
if (post<1)
post=1;
if (posl<1)
posl=1;
}while (*ptrt<70||*ptrl<70);
printf("tortuga= %d\nliebre=%d\n" ,post ,posl);
return 0;
}
コンパイラの出力:事前に任意の助け
tarea.c: In function ‘main’:
tarea.c:17: warning: assignment makes integer from pointer without a cast
tarea.c:18: warning: assignment makes integer from pointer without a cast
tarea.c:19: warning: assignment makes integer from pointer without a cast
tarea.c:20: warning: assignment makes integer from pointer without a cast
tarea.c:21: warning: assignment makes integer from pointer without a cast
tarea.c:22: error: invalid operands to binary - (have ‘int’ and ‘int *’)
tarea.c:23: error: invalid operands to binary - (have ‘int’ and ‘int *’)
tarea.c:24: warning: assignment makes integer from pointer without a cast
tarea.c:25: warning: assignment makes integer from pointer without a cast
tarea.c:26: warning: assignment makes integer from pointer without a cast
tarea.c:29: warning: assignment makes integer from pointer without a cast
tarea.c:30: warning: assignment makes integer from pointer without a cast
tarea.c:31: warning: assignment makes integer from pointer without a cast
tarea.c:32: warning: assignment makes integer from pointer without a cast
tarea.c:33: warning: assignment makes integer from pointer without a cast
tarea.c:34: warning: assignment makes integer from pointer without a cast
tarea.c:35: warning: assignment makes integer from pointer without a cast
tarea.c:36: warning: assignment makes integer from pointer without a cast
おかげ
私は、あなたがそれらを操作しようとする前に、あなたがそれらをderefferenceする必要があるためだと思う。 – clamchoda
スイッチのすべての 'posl'と' post'の前の '&'文字は不要です。 – osgx
なぜポインタを使用していますか? – outis