函数exit(0)应该有一个原型 [英] function exit(0) should have a prototype

查看:125
本文介绍了函数exit(0)应该有一个原型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 #include   Stdio.h 
#include conio.h
#include math.h
#include graphics.h
#include< string.h>

void intgraph();
void display_cordinate( char bg_c​​olor, char line_color);
int Create_poly( int poly [] [ 2 ]);
void fill_poly( int poly [] [ 2 ], int points, char line_color, char fill_color);
void 标识( float 矩阵[ 3 ] [ 3 ]);
void Translate_to_Relative( int poly [] [ 2 ], int points, int Xdis, int Ydis);

void main()
{
int poly [ 3 ] [ 2 ],i,points,Xdis,Ydis;
float Sx,Sy,Matrix [ 3 ] [ 3 ],温度,COS,仙;
char ch;
intgraph();

setfillstyle( 8 ,RED);
points = Create_poly(poly);
display_cordinate(DARKGRAY,WHITE);
fill_poly(poly,points,WHITE,RED);

getch();
身份(矩阵);
Xdis = 0-poly [ 0 ] [ 0 ];
Ydis = 0-poly [ 0 ] [ 1 ];

Translate_to_Relative(poly,points,Xdis,Ydis);

菜单:
restorecrtmode();
do
{
clrscr();
printf( =================== =============);
printf( 1..Scaling);
printf( 2.翻译);
printf( 3..Rotation);
printf( 4.反射[X轴]);
printf( 5.反射[Y轴]);
printf( 6.反射[X = Y轴]);
printf( 7.绘制);
printf( 8. EXIT);
printf( =================== =============);
printf( 选择Ur Destiny: - );
ch = getche();
} while ((ch< ' 1 ')||(ch> ' 8'));

switch (ch)
{
case ' 1'
printf( 输入缩放比率: - );
printf( Sx: - );
scanf( %f,& Sx);
printf( Sy: - );
scanf( %f,& Sy);
for (i = 0 ; i< 3; i ++)
{
Matrix [i] [ 0 ] = Matrix [i] [ 0 ] * Sx;
Matrix [i] [ 1 ] = Matrix [i] [ 1 ] * Sy;
}
goto 菜单;

case ' 2'
printf( 输入翻译[Relative]: - );
printf( Tx: - );
scanf( %f,& Sx);
printf( Ty: - );
scanf( %f,& Sy);

矩阵[ 2 ] [ 0 ] =矩阵[ 2 ] [ 0 ] + Sx;
矩阵[ 2 ] [ 1 ] =矩阵[ 2 ] [ 1 ] + Sy;

goto 菜单;

case ' 3'
printf( 输入旋转角度[度]: - ) ;
scanf( %f,& Sx);

Sx =(Sx * 3。 14 )/ 180;
Cos = cos(Sx);
Sin = sin(Sx);
for (i = 0 ; i< = 2 ; i ++)
{
temp = Matrix [i] [ 0 ] * Cos-Matrix [i] [< span class =code-digit> 1
] *罪;
Matrix [i] [ 1 ] = Matrix [i] [ 0 ] * Sin + Matrix [i] [ 1 ] * Cos;
Matrix [i] [ 0 ] = temp;
}
goto 菜单;

case ' 4'
矩阵[ 1 ] [ 1 ] =矩阵[ 1 ] [ 1 ] * - 1;
printf( 完成);
getch();

goto 菜单;

case ' 5'
矩阵[ 0 ] [ 0 ] =矩阵[ 0 ] [ 0 ] * - 1;
printf( 完成);
getch();

goto 菜单;

case ' 6'
矩阵[ 0 ] [ 1 ] = 1 ;
矩阵[ 1 ] [ 1 ] = 1 ;
printf( 完成);
getch();
goto 菜单;

case ' 7'
for (i = 0 ; i< = points; i ++)
{
temp = poly [i] [ 0 ] *矩阵[ 0 ] [ 0 ] + poly [i] [ 1 ] * Matrix [ 1 ] [ 0 ] + Matrix [ 2 ] [ 0 ];
poly [i] [ 1 ] = poly [i] [ 0 ] * Matrix [ 0 ] [ 1 ] + poly [i] [ 1 ] *矩阵[ 1 ] [ 1 ] + Matrix [ 2 ] [ 1 ];
poly [i] [ 0 ] = temp;
}

case ' 8'
getch();
// closegraph();
exit( 0 );
}
setgraphmode( 2 );
display_cordinate(DARKGRAY,WHITE);
Translate_to_Relative(poly,points,-Xdis,-Ydis);
fill_poly(poly,points,CYAN,RED);
getch();
restorecrtmode();
do
{
clrscr();
printf( 是否要切换到菜单[Y | N]: - );
ch = getche();
} while ((ch!= ' Y')&&(ch!= ' N'));
if (ch == ' Y'
{
身份(矩阵);
Xdis = 0-poly [ 0 ] [ 0 ];
Ydis = 0-poly [ 0 ] [ 1 ];

Translate_to_Relative(poly,points,Xdis,Ydis);
goto 菜单;
}
closegraph();
}

void intgraph()
{
int g = DETECT,d;
initgraph(& g,& d, c:\ tc\bgi);
}

void fill_poly( int poly1 [] [< span class =code-digit> 2
], int points, char line_color, char fill_color)
{
int pol [ 20 ],I;
char str [ 2 ];
for (i = 0 ; i< = points; i ++)
{
pol [i * 2] = poly1 [i] [ 0 ];
pol [i * 2 + 1] = poly1 [i] [ 1 ];
}
pol [i * 2] = poly1 [ 0 ] [ 0 ]。
pol [i * 2 + 1] = poly1 [ 0 ] [ 1 ];

setcolor(line_color);
setfillstyle( 8 ,fill_color);
fillpoly(points + 1,pol);

setcolor(fill_color);
settextstyle( 1 0 3 < /跨度>);
for (i = 0 ; i< = points; i ++)
{
sprintf(str, %c,i + ' a');
outtextxy(poly1 [i] [ 0 ],poly1 [i] [ 1 ], STR);
}
}

void 身份( float 矩阵[ 3 ] [ 3 ])
{
int i,j;
for (i = 0 ; i< = 2 ; i ++)
{
for (j = 0 ; j< = 2 ; j ++)
{
if (i = = j)
Matrix [i] [j] = 1 ;
else
Matrix [i] [j] = 0 ;
}
}
}
int Create_poly( int poly [] [ 2 ])
{
poly [ 0 ] [ 0 ] = 200 ;
poly [ 0 ] [ 1 ] = 20 ;

poly [ 1 ] [ 0 ] = 300 ;
poly [ 1 ] [ 1 ] = 150 ;

poly [ 2 ] [ 0 ] = 130 ;
poly [ 2 ] [ 1 ] = 280 ;

return 2 ;
}

void display_cordinate( char bg_c​​olor, char line_color)
{
int i;
setbkcolor(bg_color);
setcolor(line_color);
for (i = 0 ; i< = 640 ; i + = 50
{
line(i, 0 ,i, 480 );
}

for (i = 0 ; i< = 480 ; i + = 50
{
line( 0 ,i, 640 ,i);
}
矩形( 0 0 639 479 );
}

void Translate_to_Relative( int poly [] [< span class =code-digit> 2
], int points, int Xdis, int Ydis)
{
int i;
for (i = 0 ; i< = points; i ++)
{
poly [i] [ 0 ] = poly [i] [ 0 ] + Xdis;
poly [i] [ 1 ] = poly [i] [ 1 ] + Ydis;
}
}









只有一个错误函数应该有一个原型,我尝试了很多东西,但这个错误没有消失。

解决方案

你缺少stdlib.h ...

  #include   < ;   stdlib.h  >   


#include "Stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
#include <string.h>

   void intgraph();
   void display_cordinate(char bg_color,char line_color);
   int Create_poly(int poly[][2]);
   void fill_poly(int poly[][2],int points,char line_color,char fill_color);
   void Identity(float Matrix[3][3]);
   void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis);

   void main()
   {
      int poly[3][2],i,points,Xdis,Ydis;
      float Sx,Sy,Matrix[3][3],temp,Cos,Sin;
      char ch;
      intgraph();

      setfillstyle(8,RED);
      points=Create_poly(poly);
      display_cordinate(DARKGRAY,WHITE);
      fill_poly(poly,points,WHITE,RED);

      getch();
      Identity(Matrix);
      Xdis=0-poly[0][0];
      Ydis=0-poly[0][1];

      Translate_to_Relative(poly,points,Xdis,Ydis);

   Menu:
      restorecrtmode();
      do
      {
     clrscr();
     printf("================================");
     printf("1. Scaling");
     printf("2. Translation");
     printf("3. Rotation");
     printf("4. Reflection [ X axis ]");
     printf("5. Reflection [ Y axis ]");
     printf("6. Reflection [ X=Y axis ]");
     printf("7. Draw ");
     printf("8. EXIT ");
     printf("================================");
     printf("Choose Ur Destiny:- ");
     ch=getche();
      }while((ch<'1')||(ch>'8'));

      switch(ch)
      {
     case '1':
        printf("Enter Scaling Ratio:- ");
        printf("Sx:- ");
        scanf("%f",&Sx);
        printf("     Sy:- ");
        scanf("%f",&Sy);
        for(i=0;i<3;i++)
        {
           Matrix[i][0]=Matrix[i][0]*Sx;
           Matrix[i][1]=Matrix[i][1]*Sy;
        }
        goto Menu;

     case '2':
        printf("Enter Translation [Relative]:- ");
        printf("Tx:- ");
        scanf("%f",&Sx);
        printf("     Ty:- ");
        scanf("%f",&Sy);

        Matrix[2][0]=Matrix[2][0]+Sx;
        Matrix[2][1]=Matrix[2][1]+Sy;

        goto Menu;

     case '3':
        printf("Enter Rotation Angle [Degree]:- ");
        scanf("%f",&Sx);

        Sx=(Sx*3.14)/180;
        Cos=cos(Sx);
        Sin=sin(Sx);
        for(i=0;i<=2;i++)
        {
           temp=Matrix[i][0]*Cos-Matrix[i][1]*Sin;
           Matrix[i][1]=Matrix[i][0]*Sin+Matrix[i][1]*Cos;
           Matrix[i][0]=temp;
        }
        goto Menu;

     case '4':
        Matrix[1][1]=Matrix[1][1]*-1;
        printf("Done");
        getch();

        goto Menu;

     case '5':
        Matrix[0][0]=Matrix[0][0]*-1;
        printf("Done");
        getch();

        goto Menu;

     case '6':
        Matrix[0][1]=1;
        Matrix[1][1]=1;
        printf("Done");
        getch();
        goto Menu;

     case '7':
        for(i=0;i<=points;i++)
        {
           temp=poly[i][0]*Matrix[0][0]+poly[i][1]*Matrix[1][0]+Matrix[2][0];
           poly[i][1]=poly[i][0]*Matrix[0][1]+poly[i][1]*Matrix[1][1]+Matrix[2][1];
           poly[i][0]=temp;
        }

     case '8':
        getch();
//            closegraph();
        exit(0);
      }
      setgraphmode(2);
      display_cordinate(DARKGRAY,WHITE);
      Translate_to_Relative(poly,points,-Xdis,-Ydis);
      fill_poly(poly,points,CYAN,RED);
      getch();
      restorecrtmode();
      do
      {
     clrscr();
     printf("Do you Want to Switch to MENU [Y|N]:- ");
     ch=getche();
      }while( (ch!='Y') && (ch!='N') );
      if(ch=='Y')
      {
     Identity(Matrix);
     Xdis=0-poly[0][0];
     Ydis=0-poly[0][1];

     Translate_to_Relative(poly,points,Xdis,Ydis);
     goto Menu;
      }
      closegraph();
   }

   void intgraph()
   {
      int g=DETECT,d;
      initgraph(&g,&d,"c:\tc\bgi");
   }

   void fill_poly(int poly1[][2],int points,char line_color,char fill_color)
   {
      int pol[20],i;
      char str[2];
      for(i=0;i<=points;i++)
      {
     pol[i*2]=poly1[i][0];
     pol[i*2+1]=poly1[i][1];
      }
      pol[i*2]=poly1[0][0];
      pol[i*2+1]=poly1[0][1];

      setcolor(line_color);
      setfillstyle(8,fill_color);
      fillpoly(points+1,pol);

      setcolor(fill_color);
      settextstyle(1,0,3);
      for(i=0;i<=points;i++)
      {
     sprintf(str,"%c",i+'a');
     outtextxy(poly1[i][0],poly1[i][1],str);
      }
   }

   void Identity(float Matrix[3][3])
   {
      int i,j;
      for(i=0;i<=2;i++)
      {
     for(j=0;j<=2;j++)
     {
        if(i==j)
           Matrix[i][j]=1;
        else
           Matrix[i][j]=0;
     }
      }
   }
   int Create_poly(int poly[][2])
   {
      poly[0][0]=200;
      poly[0][1]=20;

      poly[1][0]=300;
      poly[1][1]=150;

      poly[2][0]=130;
      poly[2][1]=280;

      return 2;
   }

   void display_cordinate(char bg_color,char line_color)
   {
      int i;
      setbkcolor(bg_color);
      setcolor(line_color);
      for(i=0;i<=640;i+=50)
      {
     line(i,0,i,480);
      }

      for(i=0;i<=480;i+=50)
      {
     line(0,i,640,i);
      }
      rectangle(0,0,639,479);
   }

   void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis)
   {
      int i;
      for(i=0;i<=points;i++)
      {
     poly[i][0]=poly[i][0]+Xdis;
     poly[i][1]=poly[i][1]+Ydis;
      }
   }





its only one erroe" function should have a prototype" and i tried many thing but this error not gone.

解决方案

You are missing stdlib.h...

#include <stdlib.h>


这篇关于函数exit(0)应该有一个原型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆