首页 > 解决方案 > 为什么我的程序在 C 中查找圆弧或圆的坐标的结果与“正确”结果不同?

问题描述

我是这里的真正初学者,对此我真的不确定。这是一项家庭作业。

我们必须使用半径、起始角度和结束角度找到弧的 10 (x,y) 坐标。该程序有效,但它给出的结果与自动检查系统要求的“正确”结果略有不同。这是我的代码和基于 r=100、angle1=1、anglef=30 的系统结果!

提前致谢!

FILE *pf1;  
int n=0;
double angulo1, angulof, angulo, radio, x, y;

printf ("\nIntroduce radio : ");
scanf ("%lf", &radio);
printf ("\nIntroduce angulo inicial :  ");
scanf ("%lf", &angulo1);
printf ("\nIntroduce angulo final : ");
scanf ("%lf", &angulof);

angulo = ((angulof-angulo1)/9);
pf1 = fopen("salida.txt", "w");
for (n=0; n<=9; n++)
{
    x=radio*cos(angulo1+(angulo*n));
    y=radio*sin(angulo1+(angulo*n));    

    fprintf (pf1, "%lf,%lf\n", x,y);
}   
return 0;

.

ERROR
■■■ MY FILE:
54.030231,84.147098
-41.614684,90.929743
-98.999250,14.112001
-65.364362,-75.680250
28.366219,-95.892427
96.017029,-27.941550
75.390225,65.698660
-14.550003,98.935825
-91.113026,41.211849
-83.907153,-54.402111

■■■ CORRECT FILE:
54.030231,84.147095
-41.614685,90.929741
-98.999252,14.112000
-65.364365,-75.680252
28.366219,-95.892426
96.017029,-27.941549
75.390228,65.698662
-14.550003,98.935822
-91.113029,41.211849
-83.907150,-54.402111

标签: cmath

解决方案


使用电子表格检查您的数据,它包含的正是它应该包含的内容。然而,第二个文件中的数据看起来像正弦和余弦,以单精度(浮点数)计算。

这意味着创建这种“自动检查”的人应该为自己感到非常非常羞耻。


推荐阅读