题目::证明了可以用不多于4种颜色对n个区域着色,而满足相邻的区域具有不同的颜色输入形式:暂定最多50个区域,如需证明更多区域,修改#defineS50即可;以整形形式输入(取值范围1-32767)用户需要证明的区域数目,相联的一对矩阵;输出形式:以0和1输出关联矩阵,和以blueyelloworangepink形式输出每个区域相对应证明出的颜色;:intmenu(void)//图形主菜单,按上下键选择功能,返回所选项给mainintinput(intMatrix[S][S])//输入函数,要求定义区域的数目,输入相关联的每两个区域,返回区域数目FILE*LoadSaveMenu(char*wr)//按save或load传来的wb或rb对所选文件进行读或写操作,返回文件指针fpvoidsave(intMatrix[S][S],ints)//把现在的Matrix矩阵存入到Loadsavemenu返回的fp指向的文件中intload(intMatrix[S][S])//在Loadsavemenu返回的fp中读出已记录的矩阵intprove(intMatrix[S][S],intDis[],ints)//主要的证明部分,详细步骤见流程图voidprint(intDis[],ints);//由全局变量proved决定是否已经通过证明,当且仅当证明后才可打印出来voidExit()//安全退出本程序voidmain()//创建二维数组Matrix[][]表示关联矩阵,一维数组Dis[]表示国家颜色,/*创建二维数组Matrix[][]表示关联矩阵,一维数组Dis[]表示国家颜色,以switch调用各个函数进行证明和操作*/voidmain(){intMatrix[S][S];/*存放关联矩阵*/intDis[S];/*存放每个国家对应的颜色*/ints;/*区域数目*/intc;FILE*fp;intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,"");clrscr();cleardevice();while(1){clrscr();cleardevice();c=menu();clrscr();cleardevice();switch(c){case1:s=input(Matrix); break;case2:save(Matrix,s); break;case3:s=load(Matrix); break;case4:proved=prove(Matrix,Dis,s); break;case5:print(Dis,s); break;case6:Exit(); break;default:break;}printf("\n\tPressanykeytomainmenu.....");getch();}}/*图形主菜单,按上下键选择功能,返回所选项给main*/intmenu(void){intgdriver=DETECT,gmode;char*name[]={"Inputrelativeddistricts","Savetherecord","Loadtherecord",
题目四色验证 来自淘豆网m.daumloan.com转载请标明出处.