c - 我的代码中的声明错误

标签 c bgi

我在以下代码的第 48 行收到错误:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>

void swap(int a,int b);void bar1();void bar2();
void bar3();  void bar4();  check0(); check1();
check2(); void del(); void rod1(); void rod2();
void box1();void box2();void tee1();voidtee2();
void tee3();void tee4();check3();void insert();
void again();void print();void myremove();void frame();
int score=0,spd,q,t,a=0,i,j,l[6]={300,90,315,105,301,91},p,turn,m,n;
char play='y';
static int arr[26][13];
void main(void)
{

   char ch,y;
   int gd= DETECT,gm,area,maxx,maxy,move,lmove,rmove;
   void *buff;
   initgraph(&gd,&gm,"d:\tc\bgi");
do{

   turn=1;
    score=0;
   do{
   clrscr();
   cleardevice();
   printf(" Enter Your Choice");
   printf(" Basic Level.......... 1");
   printf(" Middle Level......... 2");
   printf(" Advanced Level....... 3");
   printf(" Experts Level........ 4");
   printf(" Professional Level... 5");
   y=getch();
   clrscr();
   cleardevice();
   if(y=='1') {spd=200; settextstyle(2,0,6);outtextxy(2,150,"   BasicLevel ");break;}
   if(y=='2') {spd=150; settextstyle(2,0,6);outtextxy(2,150,"   MiddleLevel ");break;}
   if(y=='3') {spd=100; settextstyle(2,0,6);outtextxy(2,150,"  AdvancedLevel ");break;}
   if(y=='4') {spd=75; settextstyle(2,0,6);outtextxy(2,150,"  ExpertsLevel ");break;}
   if(y=='5') {spd=50;  settextstyle(2,0,6);outtextxy(2,150,"ProfessionalLevel ");break;}
      }while(1);

   frame();
   getch();
int k,ar[2],pr[2],t[6];

randomize();
ar[0]=random(2);
pr[0]=random(6);
ar[1]=random(2);
pr[1]=random(6);
while(1)
{
printf(" score= %d",score);
a=ar[0];
p=pr[0];
l[0]=450;l[1]=250;l[2]=465;l[3]=265;l[4]=451;l[5]=251;

if(y=='1') spd=100;
if(y=='2') spd=75;
if(y=='3') spd=50;
if(y=='4') spd=30;
if(y=='5') spd=20;
print();

delay(500);
a=ar[1];
p=pr[1];

t[0]=l[0];  t[1]=l[1]; t[2]=l[2];
t[3]=l[3];  t[4]=l[4]; t[5]=l[5];

a=ar[1];
p=pr[1];

l[0]=270;l[1]=90;l[2]=285;l[3]=105;l[4]=271;l[5]=91;

看起来getch()之后有问题。整个源代码在这里:http://codepad.org/I1cQQxJE

感谢您提供的任何提示来帮助解决错误

最佳答案

第 48 行是:

int k,ar[2],pr[2],t[6];

所以我怀疑您使用的是 C99 之前的编译器(正如对 conio.h 的过时使用所证明的那样,它是一些继续使用 20 年前的大学的最爱,尽管有更现代且同样便宜的选项(例如 gcc)可用,但 Borland C 已经过时了。

如果是这样,您需要在 block 的顶部声明变量。

关于c - 我的代码中的声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414355/

相关文章:

c - LPCXpresso错误CreateProcess:没有这样的文件或目录

C:尝试初始化结构中的 char 数组时,分配错误中的类型不兼容

c++ - 使用 floodfill c++ 填充矩形

c - 边界填充算法中途停止填充

c - 如何多次调用 initgraph ?

c++ - 函数 int86 编译错误 : "Stray 302",

c - Turbo C++ Graphics.h 与 conio.h clreol() 冲突

C 语言函数调用参数很少,但不报错?

c - 不分配内存赋值的指针

c - 如何在 GDB 中定义 offsetof() 宏