*m = ((float)(y0 - y1) / (x0 - x1));
*n =(float)( yl - ((float)(y0 - yl) / (x0 - x1)) * x1);
float 需要转换分子
如果有用麻烦点个采纳,谢谢~
你为什么要print *m呢,m一开始指向的是数组a的第一个元素,它在循环过程中不断被赋值然后移动,最后一次执行m++,它指向了数组最后一个没被改变的值,那不是0是啥呢,除非越界了会是个随机数,否则肯定是0呀
你想看a里面有什么要循环打印a呀,打印m干什么
打个比方吧,有个快递小哥,不停的把外卖送到各个地方,等他都送完回来了,你不去看收外卖的人到底收到什么外卖,而去看小哥手里,那肯定是什么都没有啊
循环出来,打印语句之前,将 m = a; n = b; 重新指向数组的首地址就解决问题了,因为循环里用了 m++; n++; ,自加后,m n 就不是指向数组的首地址了。