第四题关于有效数字
查看原帖
第四题关于有效数字
587048
shujihao楼主2021/10/24 22:34

看题解貌似没人去算有效数字,都是直接数据计算输出的,这里分享一下自己的算法,主要是提供一下思路,用于求未知数据进行有效数字输出。

//代码如下(只是一个函数,不是原代码) void w4(){ double x; int x_,y,i; x=(double)500/3;//注意要转换成double类型,不然小数位会丢失 x_=(int)x;//转存整数位。 for(i=0;;i++) { int j=x_/pow(10,i);//pow是幂函数,第一个数是底数,第二个数是次方 if(j==0) break; }//得出整数位的位数i; //分情况进行有效数字输出 if(i<7){ int k=6-i; switch(k){ case 0:printf("%.0lf",x);break; case 1:printf("%.1lf",x);break; case 2:printf("%.2lf",x);break; case 3:printf("%.3lf",x);break; case 4:printf("%.4lf",x);break; case 5:printf("%.5lf",x);break; case 6:printf("%.6lf",x);break; } }//位数比六大一般不会求六位有效数字,误差太大 }

欢迎交流,进行其他有效数字可以直接改代码,但是要是涉及高位有效数字就会很麻烦,希望有大佬能改良思路。

2021/10/24 22:34
加载中...