一个容易的程序(新手)

一个简单的程序(新手)
#include <iostream>
using namespace std;
long long  p_C,p_W;
long double percent;
int main()
{
cin>>p_W;
cout<<endl;
cin>>p_C;
percent=p_C/p_W*100;
cout<<percent<<endl;
return 0;
}
给p_W赋值和p_C(任意),然后求percent。为什么当p_W大于p_C时,输出总是0呢?是不是精度有问题啊?

------解决方案--------------------
是的,用float就可以了

------解决方案--------------------
p_C/p_W*100; 如果不想使用符点运算,可以这样写

p_C*100/p_W;  注意, 前提是p_C*100不会溢出.
------解决方案--------------------
long long 类型在除法运算时是不保留小数的,
所以当p_W大于p_C时,商为0,结果就为0了。
使用double,float类型就可以了
------解决方案--------------------
percent=(long double)p_C/(long double)p_W*100.0;