热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请求高手协助调试程序,非常感谢您的帮助!

求助高手调试程序,非常感谢您的支持!在编写C语言程序时遇到了一些问题,具体代码如下:```c#include#include#include#defineMAX50intt;```希望有经验的开发者能提供指导,帮助解决调试中的难题。感谢您的时间和帮助!
#include
#include 
#include
#define MAX 50
int total;
int lin[MAX][MAX];
int color[MAX];
void draw();
int okcyq(int dep,int i,int x)
{
int k;
for(k=x;k<=dep;k++)
{
if(lin[dep][k]==1 && i==color[k])return(0);
if(!okcyq(dep,i,k+1)&&k==dep)return(1);
}
 return(0);
}

void output()
{
int k;
for(k=1;k<=total;k++)
 printf("%d ",color[k]);
}

 void find(int dep)
{
int i;
for(i=1;i<=4;i++)
{
if(okcyq(dep,i,1))
{
color[dep]=i;
if(dep==total) {output();getch();draw();exit(1);}
else find(dep+1);
color[dep]=0;
}
}
}
 void draw()
{
 int gdriver,gmode;
 int x=1,y=1,dx,dy,dx2,dy2,i=1;
 char dot,draw;
 gdriver=DETECT;
 initgraph(&gdriver,&gmode,"");
 cleardevice();
 setbkcolor(BLACK);
 while((dot=getch())!='q')
    {
     line(1,440,639,440);
     switch(dot)
{
 case 'a':
     setviewport(1,441,639,479,BLUE);
     clearviewport();
     outtextxy(1,2,"Press 'b' to end, then Press 'q' to quit");
     setviewport(1,1,639,439,BLUE);
     moveto(x,y);
     while((draw=getch())!='b')
   {
     switch(draw)
      {
case 77:x=(getx()+1)%639;y=gety();moveto(x,y);putpixel(x,y,RED);break;
case 75:x=getx()-1;y=gety();moveto(x,y);putpixel(x,y,RED);break;
case 72:x=getx();y=gety()-1;moveto(x,y);putpixel(x,y,RED);break;
case 80:x=getx();y=(gety()+1)%439;moveto(x,y);putpixel(x,y,RED);break;
      }
    }
  break;
 default:
      setviewport(1,441,639,479,BLUE);
      clearviewport();
      outtextxy(1,2,"Press 'e' to end, then Press 'q' to quit");
      setviewport(1,1,639,439,BLUE);
      moveto(x,y);
      while((draw=getch())!='e')
   {
     switch(draw)
      {
case 77:x=(getx()+1)%639;y=gety();putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
case 75:x=getx()-1;if(x==0)x=639;y=gety();putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
case 72:x=getx();y=gety()-1;if(y==0)y=439;putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
case 80:x=getx();y=(gety()+1)%439;putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
      }
    }
}
     }
       setviewport(1,441,639,479,BLUE);
       clearviewport();
       outtextxy(1,2,"Press 'e' to end, then Press 'q' to quit");
       setviewport(1,1,639,439,BLUE);
       moveto(x,y);
     while((dot=getch())!='q')
{
  switch(dot)
    {
             case 77:x=(getx()+1)%639;y=gety();putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
     case 75:x=getx()-1;if(x==0)x=639;y=gety();putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
     case 72:x=getx();y=gety()-1;if(y==0)y=439;putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
     case 80:x=getx();y=(gety()+1)%439;putpixel(getx(),gety(),getpixel(x,y));moveto(x,y);putpixel(x,y,YELLOW);break;
     case 13:
     dx=x;dy=y;
     while(1)
{
 if(getpixel(dx,dy)!=RED)
     dx--;
 else break;
}
     dx2=dx;
     dx=x;
     while(1)
                        {
 if(getpixel(dx,dy)!=RED)
     dx++;
 else break;
}
     setcolor(color[i]);
     line(dx2+1,dy,dx-1,dy);
     dx=x;
     while(1)
{
 if(getpixel(dx,dy)!=RED)
     dy--;
 else break;
}
     dy2=dy;
     dy=y;
     while(1)
            {
 if(getpixel(dx,dy)!=RED)
     dy++;
 else break;
}
     setcolor(color[i]);
     line(dx,dy2+1,dx,dy-1);
     break;
     case 'k':i++;
    }
}
 closegraph();
}
void main()
{
int i,j,sp,ep;
char c;
clrscr();
printf("The amount of district:");
scanf("%d",&total);
for(i=0;i<=total;i++)
   for(j=0;j<=total;j++)
     lin[i][j]=0;
        for(i=0;;i++)
           {
            clrscr();
    printf("The start point:");
            scanf("%d",&sp);
    printf("The  end  point:");
            scanf("%d",&ep);
    lin[sp][ep]=1;
    lin[ep][sp]=1;
            printf("\nPress 'q'  return to main...\n");
            c=getch();
            if(c=='q')break;
   }
for(i=0;i<=total;i++)
   for(j=0;j<=total;j++)
    {
      printf("%d ",lin[i][j]);
      if(j==total)printf("\n");
     }
getch();
for(i=0;i<=total;i++) color[i]=0;
clrscr();
find(1);
}



我下了一个sasyx库,可以运行graphics.h文件了。但编译的时候出现setviewport undeclared identifier怎么解决?

7 个解决方案

#1


编译出错是无法调试的

#2


很明显编译器告诉你这个setviewport函数未定义,也就是找不到出处,缺少对应的头文件吧

#3


要怎么改呢?

#4


setviewport undeclared identifier
错误很明显了!
函数没定义,楼主调试程序也是一项基本技能的!

#5


也许是easyx库不支持setviewport

#6


你的程序中都没有setviewport的调用。

#7


引用 6 楼 ForestDB 的回复:
你的程序中都没有setviewport的调用。



推荐阅读
author-avatar
手机用户2502904013
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有