当前位置: 代码迷 >> C语言 >> 急求众大虾帮助
  详细解决方案

急求众大虾帮助

热度:151   发布时间:2005-05-04 16:31:00.0
急求众大虾帮助
小弟最近编程用到getvect这个函数,我从网上找了一些用法的例子.可是在编译的时候,总出现说明语法错误!望众大虾能帮帮小弟!谢谢拉
搜索更多相关的解决方案: 编程  网上  

----------------解决方案--------------------------------------------------------
把你的代码贴上来!
要不然,语法错误那么多,怎知道你是属于哪一种!
哎~~~~~~
----------------解决方案--------------------------------------------------------

#include <stdio.h> #include <dos.h> int xx; int p=49; struct pro { char id; int pri; int p; int s; int status; }A={'a',2,1,1,0},B={'b',1,1,1,0},C={'c',0,1,1,0}

void interrupt (*into)();

int select() { if (A.pri>B.pri) and (A.pri>C.pri); return(0); if (B.pri>A.pri) and (B.pri>C.pri); return(1); if (C.pri>A.pri) and (C.pri>B.pri); return(2); } int prime(int n) { int m; for(m=2;m<=n/2;m++) {if (n%m==0) return(0); } return(n); } void interrupt time() { if(A.status==1)A.pri=A.pri-A.s; else A.pri=A.pri+A.p; if(B.status==1)B.pri=B.pri-B.s; else B.pri=B.pri+B.p; if(C.status==1)C.pri=C.pri-C.s; else C.pri=C.pri+C.p;

xx++; }

main() { int a[3]={100,100,100}; int I,j,k,u,v,w=0; char c; into=gervect(p); setvect(p,time); while(xx<300) {u=select(); switch(u) {case0:a[0]++;if(a[0]>10000)a[0]=100;v=prime(a[0]); if(v){gotoxy(2,4);printf("A %6d %6d",v,w++);}break; case1:a[0]++;if(a[0]>10000)a[0]=100;v=prime(a[0]); if(v){gotoxy(3,4);printf("B %6d %6d",v,w++);}break; case2:a[0]++;if(a[0]>10000)a[0]=100;v=prime(a[0]); if(v){gotoxy(4,4);printf("C %6d %6d",v,w++);}break; } } setvect(p,into); }


----------------解决方案--------------------------------------------------------
这就是我所做的程序,其中还有几个别的错误,但是与那个函数无关,是我思路上的问题!希望大虾能指出我那个函数的错误!谢谢拉
----------------解决方案--------------------------------------------------------
其实如果撇开你的思路错误的话

最关键的地方就是你的语法错误了,编译器所说的“说明语法错误”其实是你在
struct pro
{
  char id;
  int pri;
  int p;
  int s;
  int status;
}A={'a',2,1,1,0},B={'b',1,1,1,0},C={'c',0,1,1,0}

的结尾处少了个分号,从而让编译器误认为下面的语句是和上面的连接在一起的,所以就出现了所谓的“说明语法错误”
A={'a',2,1,1,0},B={'b',1,1,1,0},C={'c',0,1,1,0};
这样就对了

当然,好心点,顺便告诉你另外的一些语法错误
在main()中的
into=gervect(p);应该改为into=getvect(p);
相信这是你不小心打错的

还有,注意一下
int select()
{
   if (A.pri&gt;B.pri) and (A.pri&gt;C.pri);
     return(0);
    if (B.pri&gt;A.pri) and (B.pri&gt;C.pri);
     return(1);
     if (C.pri&gt;A.pri) and (C.pri&gt;B.pri);
     return(2);
}

注意一下你的if语句是否正确,好象全错了呢
----------------解决方案--------------------------------------------------------
这位大虾真是太感谢你拉!哎,我又犯这种错误拉!谢谢你!
----------------解决方案--------------------------------------------------------
  相关解决方案