发新话题
打印

[C] 模拟自由落体程序

模拟自由落体程序

#include<stdio.h>
#include<conio.h>
#include<time.h>
int main()
{
     int x=15,y=4,depth=20,times=20,m=1,i,j;
for(;depth!=0;)
      {
       m=-m;
       if(m==1)
       depth--;
       for(i=1;i<=depth;i++)
       {
        printf("***********\n");
printf("the program will show\n");
printf("the free falling \n");
  printf("************\n");
  gotoxy(x,y);
printf("***\n");
gotoxy(x,y+1);
printf("***\n");
gotoxy(x,y+2);
printf("***");
for(j=1;j<=times;j++)
   delay(10);
    clrscr();
    if(m==-1)
  {
          y++;
    times--;
  }
  else
   {
     y--;
     times++;
    }
  }
}
getch();
return 1;
}
思想有多远,就能走多远!

TOP

在书上看来的,但有错误,可不可以帮忙看一下,还有后两个头文件在C++中相应是?

[ 本帖最后由 kevin88 于 2008-9-24 20:35 编辑 ]
思想有多远,就能走多远!

TOP

学习下C和C++:s027:
举世誉我而不加劝 举世非我而不加沮
http://hi.baidu.com/sruingking

TOP

好像这个程序是TC上运行才行(关于图像)

TOP

引用:
原帖由 kevin88 于 2008-9-24 18:08 发表
在书上看来的,但有错误,可不可以帮忙看一下,还有后两个头文件在C++中相应是?
这个代码较老,是C的代码。
conio.h在VC中是有的,但是很多函数如gotoxy啊、clrscr什么的都没了。windows.h底下有一个sleep可以替代delay函数。因此解决方法是自写2个函数替代gotoxy和clsscr,然后再加入windows.h,将delay替代为sleep。嗯嗯,加分吧。
复制内容到剪贴板
代码:


#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include<time.h>

void   clrscr()   
{   
  HANDLE   hConsole;   
  COORD   coordScreen   =   {   0,   0   };   
  DWORD   cCharsWritten;   
   
  hConsole=GetStdHandle(STD_OUTPUT_HANDLE);   
  CONSOLE_SCREEN_BUFFER_INFO   csbi;   /*   to   get   buffer   info   */   
  DWORD   dwConSize;   /*   number   of   character   cells   in   the   current   buffer   */   
  GetConsoleScreenBufferInfo(hConsole,   &csbi);   
  dwConSize   =   csbi.dwSize.X   *   csbi.dwSize.Y;   
  FillConsoleOutputCharacter(hConsole,   (TCHAR)   '   ',   
  dwConSize,   coordScreen,   &cCharsWritten);   
}   
   
void   gotoxy(int   x,   int   y)   
{   
  HANDLE   hConsole;   
  COORD   point;   
   
  point.X   =   x;   point.Y   =   y;   
  hConsole=GetStdHandle(STD_OUTPUT_HANDLE);   
  SetConsoleCursorPosition(hConsole,point);   
}   

int main()
{
     int x=15,y=4,depth=20,times=20,m=1,i,j;
for(;depth!=0;)
      {
       m=-m;
       if(m==1)
       depth--;
       for(i=1;i<=depth;i++)
       {
        printf("***********\n");
printf("the program will show\n");
printf("the free falling \n");
  printf("************\n");
  gotoxy(x,y);
printf("***\n");
gotoxy(x,y+1);
printf("***\n");
gotoxy(x,y+2);
printf("***");
for(j=1;j<=times;j++)
   Sleep(10);
    clrscr();
    if(m==-1)
  {
          y++;
    times--;
  }
  else
   {
     y--;
     times++;
    }
  }
}
getch();
return 1;
}
本帖最近评分记录
  • xushine 现金 +20 精彩回复,加分鼓励 2008-9-26 10:00
比我牛逼的都死了,没死的都没我牛逼

TOP

谢谢了,不过在VC6中编译时有错误,
fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
在GOOGLE找了很久,都没能搞定!
思想有多远,就能走多远!

TOP

……
stdfax是要你自己定义的
VC在MFC中习惯把很多头文件和其他一些文件定义在stdfax中~

TOP

回复 7楼 的帖子

原来是这样的吗???MFC我不懂,初学者,问了愚蠢的问题也不要见怪啦!那这个程序中该加什么在这个头文件中呢?

[ 本帖最后由 kevin88 于 2008-9-25 17:07 编辑 ]
思想有多远,就能走多远!

TOP

回复 8楼 的帖子

你用的是MFC工程么?
在非不用这个MS也可以把(MFC工程已经内置),只不过这个可以加快编译,MFC都是把其他头文件#include在stdfax

TOP

我根本没用MFC,stdafx.h和mfc没有任何直接关系。
比我牛逼的都死了,没死的都没我牛逼

TOP

我走了,今天最后一次回答问题
比我牛逼的都死了,没死的都没我牛逼

TOP

目送楼上超牛B的PK
举世誉我而不加劝 举世非我而不加沮
http://hi.baidu.com/sruingking

TOP

引用:
原帖由 frankiez 于 2008-9-25 21:36 发表
我根本没用MFC,stdafx.h和mfc没有任何直接关系。
PK说的对。stdafx.h 是VC默认工程的头文件,其实对于很多人来说是垃圾文件(不过这种集成头文件的做法还不错,自定义工程的时候可以学习下)。但是直接删除会编译失败。为了防止出现编译失败的现象,在新建工程时要选择空工程,而不是默认工程

TOP

回复 13楼 的帖子

clssrc()函数其实在stdlib.h中的 system("pause");系统调用来完成,不用重新开发了~~
PS:PK走好

TOP

TS
PK走好
ps:PK去哪里?

TOP

发新话题