希望知道这个算式是哪里出了什么问题,出来的结果令人纠结……
程序代码:
#include<stdio.h> #include<iostream> #include<cmath> using namespace std; //dpi(Dot Per Inch,像素密度)的计算公式:(长度像素^2+宽度像素^2)^(1/2)/屏幕尺寸 double calculate_dpi(double length=1920.0,double width=1080.0,double size=5.0) { return ((pow(length,2.0)+pow(width,2.0)),0.5)/size; } int main() { double px_length,px_width,phone_size,dpi; int choose,dp,px; cout<<"是否是1080P?是按1,否按0:"<<endl; cin>>choose; switch(choose) { case 0: { cout<<"请输入像素与屏幕大小(格式如:480*800,4.0):"<<endl; scanf("%lf*%lf,%lf",&px_width,&px_length,&phone_size); dpi=calculate_dpi(px_length,px_width,phone_size);break; } case 1: dpi=calculate_dpi();break; } cout<<"请输入要转换的像素大小:"<<endl; cin>>px; //:我编译运行的时候程序跳过了这一步直接开始了下面的cout dp=(int)px*160/dpi;//dp与px的转换公式 cout<<px<<"px="<<dp<<"dp"<<endl; return 0; } //预想中成功的结果应该是:switch(0)→input:480*800,4.0→input:px=466→output:px=320