帮忙看下这个程序为什么出错

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:30:00
#include"graphics.h"
#define STEP 5
main(){
int gm=DETECT,gd=0;
int size,x,y,x1=430,y1=330;
void *buf;
char c;
initgraph(&gm,&gd,"");
setfillcolor(1,BLUE);
pieslice(430,430,0,30,100);
size=imagesize(430,330,530,430); /*10*/
if(size<0) {printf("float out");exit(0);}
else buf=malloc(size);
while(1){
c=getch();
if(c=='a'){
x1-=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c=='s'){ /*20*/
y1+=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c=='d'){ /*25*/
x1+=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c=='w'){ /*30*/
y1-=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c==27) break;}

已帮你改好,程序在win-tc下运行通过,当输入2次Esc键时退出图形界面,程序结束:
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>

#define STEP 5
int main(){
int gm=DETECT,gd=0;
int size,x,y,x1=430,y1=330;
void *buf;
char c;
initgraph(&gm,&gd,"");
setfillstyle(1,BLUE);/* 此处函数用错,你用了java里面不是c里面的函数 */
pieslice(430,430,0,30,100);
size=imagesize(430,330,530,430);
if(size<0) {printf("float out");exit(0);}
else buf=malloc(size);
while(1){
c=getch();
if(c=='a'){
x1-=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c=='s'){ /*20*/
y1+=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c=='d'){ /*25*/
x1+=STEP;
getimage(430,330,530,430,buf);
putimage(x1,y1,buf,COPY_PUT);}
if(c=='w'){ /*30*/
y1-=STEP;
getimage(43