子丑乙卯 2017-09-27 13:15 采纳率: 11.1%
浏览 982
已结题

一个数组赋值给另一个数值,出现值丢失,无穷大,不知道为什么

double p1[O*2][1][3], p2[O*2][1][3], p3[O*2][1][3], norm[O*2][1][2];
double p12[O*2][1][2], p13[O*2][1][2];
int a, b, c, d;
for(int i = 0; i <O; i++)//把四边形坐标分成两个三角形,如第一个四边形4321,分成两个三角形432和214。

for(int k = 0; k <3; k++)
{
a = data2[i][0] - 1;
b = data2[i][1] - 1;
c = data2[i][2] - 1;
d = data2[i][3] - 1;

        p1[i][0][k] = data[a][k];           
        p2[i][0][k] = data[b][k];           
        p3[i][0][k] = data[c][k];

        p1[i][1][k] = data[c][k];   
        p2[i][1][k] = data[d][k];
        p3[i][1][k] = data[a][k];           
    }
printf("%.16f\t %.16f\t %.16f\t", data[3][0], data[3][1], data[3][2]);
printf("\n");
printf("%.16f\t %.16f\t %.16f\t", p1[0][0][0], p1[0][0][1], p1[i][0][2]);
printf("\n");

printf("%.16f\t %.16f\t %.16f\t", data[1][0], data[1][1], data[1][2]);
printf("\n");
printf("%.16f\t %.16f\t %.16f\t", p1[0][1][0], p1[0][1][1], p1[i][1][2]);
printf("\n");

printf("%.16f\t %.16f\t %.16f\t", data[2][0], data[2][1], data[2][2]);
printf("\n");
printf("%.16f\t %.16f\t %.16f\t", p2[0][0][0], p2[0][0][1], p2[i][0][2]);
printf("\n");

printf("%.16f\t %.16f\t %.16f\t", data[0][0], data[0][1], data[0][2]);
printf("\n");
printf("%.16f\t %.16f\t %.16f\t", p2[0][1][0], p2[0][1][1], p2[i][1][2]);
printf("\n");
![图片说明](https://img-ask.csdn.net/upload/201709/27/1506518116_141358.png)
  • 写回答

3条回答 默认 最新

  • cloudyzhao 2017-09-28 01:22
    关注

    不要使用double 用BigDecimal 这个

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料