![]() |
#2
hms2014-03-15 15:00
|

#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
#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