热门标签 | 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的调用。



推荐阅读
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 如何利用正则表达式(regexp)实现高效的模式匹配?本文探讨了正则表达式在编程中的应用,并分析了一个示例程序中存在的问题。通过具体的代码示例,指出该程序在定义和使用正则表达式时的不当之处,旨在帮助读者更好地理解和应用正则表达式技术。 ... [详细]
  • 在Python中,是否可以通过使用Tkinter或ttk库创建一个具有自动换行功能的多行标签,并使其宽度能够随着父容器的变化而动态调整?例如,在调整NotePad窗口宽度时,实现类似记事本的自动换行效果。这种功能在设计需要显示长文本的对话框时非常有用,确保文本内容能够完整且美观地展示。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
    基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
  • 如何使用和示例代码解析 org.semanticweb.owlapi.model.OWLSubPropertyChainOfAxiom.getPropertyChain() 方法 ... [详细]
  • 在 Windows 10 环境中,通过配置 Visual Studio Code (VSCode) 实现基于 Windows Subsystem for Linux (WSL) 的 C++ 开发,并启用智能代码提示功能。具体步骤包括安装 VSCode 及其相关插件,如 CCIntelliSense、TabNine 和 BracketPairColorizer,确保在 WSL 中顺利进行开发工作。此外,还详细介绍了如何在 Windows 10 中启用和配置 WSL,以实现无缝的跨平台开发体验。 ... [详细]
  • 在晴朗天气条件下,对一种神奇的魔法现象进行了深入分析。该题目为原创,基准时间限制为1秒,空间限制为131072KB,分值20,属于3级难度的算法题。研究发现,这种魔法现象在阳光明媚的环境中表现得尤为显著,进一步探讨了其背后的科学原理和技术实现方法。 ... [详细]
  • Python爬虫入门:深入解析HTTP协议与Requests库的应用
    Python爬虫入门:深入解析HTTP协议与Requests库的应用 ... [详细]
  • Java中处理NullPointerException:getStackTrace()方法详解与实例代码 ... [详细]
  • Java Web开发中的JSP:三大指令、九大隐式对象与动作标签详解
    在Java Web开发中,JSP(Java Server Pages)是一种重要的技术,用于构建动态网页。本文详细介绍了JSP的三大指令、九大隐式对象以及动作标签。三大指令包括页面指令、包含指令和标签库指令,它们分别用于设置页面属性、引入其他文件和定义自定义标签。九大隐式对象则涵盖了请求、响应、会话、应用上下文等关键组件,为开发者提供了便捷的操作接口。动作标签则通过预定义的动作来简化页面逻辑,提高开发效率。这些内容对于理解和掌握JSP技术具有重要意义。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • GDB 使用心得与技巧总结
    在使用 GDB 进行调试时,可以采用以下技巧提升效率:1. 通过设置 `set print pretty on` 来美化打印输出,使数据结构更加易读;2. 掌握常见数据结构的打印方法,如链表、树等;3. 利用 `info locals` 命令查看当前作用域内的所有局部变量;4. 在需要进行类型强制转换时,正确使用语法,例如 `p (Test::A *) pObj`。这些技巧能够显著提高调试的便捷性和准确性。 ... [详细]
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社区 版权所有