【发布时间】:2012-05-22 12:41:39
【问题描述】:
我正在尝试在我的 Windows 7 64 位中使用 Turbo C 和 DosBox (DosBox 0.74)。
该程序在第一次运行时运行良好。它编译成功,没有错误,也完美执行。
当我尝试重复运行相同的程序时,程序似乎会产生奇怪的输出。因此,同样运行良好的程序现在会产生错误输出,尽管它仍然可以成功编译。
以下是根据顶点数将多边形顶点放置在空间中的程序。在它的第一次运行中,它会产生完全预期的输出,但当我重复它时,它会产生完全错误的输出。顶点放置在完全随机的位置。
我怀疑这是否与记忆有关。当我尝试使用不同的模拟器时也重复了类似的错误!
更新 1: 我刚刚尝试使用 Mac OSX,但同样的错误正在重复。
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
int main()
{
int gd=DETECT,gm,count,i,x[100],y[100],r=100;
initgraph(&gd,&gm,"c:\\tc\\");
printf("Enter the number of cordinates:");
scanf("%d",&count);
printf("Entered count :%d",count);
for(i=0;i<count;i++)
{
x[i]=r*cos(2*3.14*(i+1)/count)+200;
y[i]=r*sin(2*3.14*(i+1)/count)+200;
circle(x[i],y[i],5);
}
getch();
return 0;
}
【问题讨论】:
-
Turbo C的奇怪行为是“正常的”。使用更好的编译器。 -
我认为变量包含一些垃圾值。你应该适当地提供内存并初始化它。
-
@KingsIndian 不幸的是我现在必须坚持使用 Turbo C!
-
@vikky 我正在打印变量值并且它打印正确。
-
如果您输入的计数大于 100,您的程序将写入超出
x和y数组的末尾。
标签: c windows-7 dosbox bgi turbo-c