typedef struct tsk{
int x;
int n;
}TSK;
TSK trd[MAX];
main(){
while(life!=0){
randomize();
for(i=0;i<MAX;i++){
trd[i].n=rand()%40+10;
if(trd[i].n<10||trd[i].n>45)
trd[i].n=rand()%40+10;
trd[i].x=25;
}
for(m=0;m<MAX;m++){
gotoxy(8,m);printf("%c%c",23,23);
gotoxy(7,m);printf("%c",17);
gotoxy(46,m);printf("%c%c",23,23);
gotoxy(48,m);printf("%c",16);
}
for(j=0;j<MAX;j++){
if(life==0)
break;
gotoxy(1,1);
insline();
gotoxy(trd[j].n,1);
printf("%c",3);
trd[j].x--;
gotoxy(ply,25);
printf("%c",1);
gotoxy(1,26);
delline();
score++;
life=hit(trd,life,ply);
gotoxy(57,25);
printf("SCORE: %0.0f LIFE: %d",score,life);
gotoxy(8,1);printf("%c%c",23,23);
gotoxy(46,1);printf("%c%c",23,23);
gotoxy(7,1);printf("%c",17);
gotoxy(48,1);printf("%c",16);
gotoxy(4,1);printf("%c",label[j]);
delay(200);
if(kbhit()){
key=getch();
key=toupper(key);
if(key==27)
life=0;
if(key=='L')
ply++;
if(ply==46)
ply--;
else if(key=='K')
ply--;
if(ply==9)
ply++;
}
}
}
}
int hit(int trd[],int life, int ply){
int i;
for(i=0;i<MAX;i++){
if((trd[i].n==ply)&&(trd[i].x==0))
life-=1;
}
return life;
}
Run Code Online (Sandbox Code Playgroud)
谁能帮助我如何纠正这个错误:左侧所需的结构.要么 .*?当我运行程序时,它给了我这个错误,它指向hit()函数.我无法找到导致此错误的原因.请帮助.谢谢.
这是编译时错误,而不是运行时错误.这是因为你正试图访问.x和.y对类型的数组元素int[].整数是不是structS,他们没有田x和y,所以编译器会告诉你这是一个错误.
最可能的修复方法应该是更改函数的trd数组参数的类型,hit如下所示:
int hit(TSK trd[],int life, int ply) {
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,由于您在声明之前使用了该函数,因此应在顶部添加原型.