L1-017 到底有多二(chen-C語言)
一,題目
L1-017 到底有多二 (15分)
一個整數“犯二的程度”定義為該數字中包含2的個數與其位數的比值。如果這個數是負數,則程度增加0.5倍;如果還是個偶數,則再增加1倍。例如數字-13142223336是個11位數,其中有3個2,並且是負數,也是偶數,則它的犯二程度計算為:3/11×1.5×2×100%,約為81.82%。本題就請你計算一個給定整數到底有多二。
輸入格式:
輸入第一行給出一個不超過50位的整數N。
輸出格式:
在一行中輸出N犯二的程度,保留小數點後兩位。
輸入樣例:
-13142223336
輸出樣例:
81.82%
二,思路(測試點2未通過)
1.字元陣列
2.判斷正負(字元)
3.判斷奇偶(陣列取餘)
4進行運算
三,新點
1.強制型別轉換的使用(double)
2.使用strlen(a[i])去實現得到陣列的位數(負數情況下,為strlen (a[i]) - 1 )
int i = (int)(a[strlen(a)-1] - ‘0’);
3.輸出為nan:not a number,不是一個數字
四,程式碼
#include<stdio.h> //類比於L1-003
#include<string.h>
int main()
{
double er=1.0;
char a[55];
gets(a);
int i,count = 0;
for(i=0;i<strlen(a);i++)
{
if(a[i]=='2')//使用字元'2',因為是字元陣列
count++;
}
int u = strlen(a);
if(a[0]=='-')
{
u = u-1;
er = er*1.5;
}
if(a[u]%2==0)
er = er*2.0;
er = 100*er*count/u;
printf("%.2lf\%\n",er);
return 0;
}
相關文章
- L1-003 個位數統計 (15分)(chen-c語言)C語言
- 前後端、多語言、跨雲部署,全鏈路追蹤到底有多難?後端
- Qt 多語言支援QT
- ModStart多語言支援
- 如何組織構建多檔案 C 語言程式(二)
- SystemVerilog 語言部分(二)
- Flutter多語言實踐Flutter
- Laravel中的多語言Laravel
- APP 多語言測試APP
- C語言實驗二C語言
- Dart語言詳解(二)——基本語法Dart
- iOS 多語言化之痛iOS
- vue element 多語言設定Vue
- Python3 多語言提示Python
- 多語言遇到的問題
- ot 多語言怎麼配置?
- ModStart系統多語言支援
- 網址多語言設計
- 覆蓋40種語言:谷歌釋出多語言、多工NLP新基準XTREME谷歌REM
- Go語言字串高效拼接(二)Go字串
- 第二章 Swift語言Swift
- Go 語言介面詳解(二)Go
- C語言深入學習二C語言
- GO語言學習——切片二Go
- Python 到底有多“香”Python
- 多語言與多時區的解決方案
- c語言多檔案編譯C語言編譯
- so easy 前端實現多語言前端
- 國際化方案(1)- 多語言
- .NET CORE 多語言實現方案
- 眾多程式語言如何抉擇
- 以$t形式使用flutter多語言Flutter
- 多語言檢測工具實踐
- C#語言————第二章 C#語言快速熱身C#
- Java和Go語言二選一,選擇哪門語言好?JavaGo
- iOS 多國語言本地化與App內語言切換(Swift)iOSAPPSwift
- 多語言網站 根據使用者語言進行跳轉網站
- C語言指標詳解(二)C語言指標