題目: 知識點for me: 1、計算res時要先把num強制轉換成浮點型,否則兩個整形相除會自動轉換成整形保存。最開始沒加(float),結果res一直是0.00000. 2、輸出百分號:%% 3、已經好幾次忘記把不是int型的數字-‘0’後再使用了。 上代碼: ...
題目:
知識點for me:
1、計算res時要先把num強制轉換成浮點型,否則兩個整形相除會自動轉換成整形保存。最開始沒加(float),結果res一直是0.00000.
2、輸出百分號:%%
3、已經好幾次忘記把不是int型的數字-‘0’後再使用了。
上代碼:
#include <iostream> using namespace std; int main() { string s; cin>>s; int num=0; int len; float res; //char c=s[0]; //bool b=(s[0]=='-'); for(int i=0;i<s.length();i++) { if(s[i]-'0'==2) { num++; } } if(s[0]=='-') { len=s.length()-1; if((s[len]-'0')%2==0){ res=(float)num/len*1.5*2*100; }else{ res=(float)num/len*1.5*100; } }else{ len=s.length(); if((s[len-1]-'0')%2==0){ res=(float)num/len*2*100; }else{ res=(float)num/len*100; } } printf("%0.2f%%",res); return 0; }