這道題不難,需要存下碎片的個數,就周遊字元串,儲存剛剛周遊過的字元,如果這個字元和剛剛的字元不同,說明到了一個新的碎片,碎片個數+1.
最後存儲保留兩位的double,用一個char數組來存,sprintf來寫進去。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
while(cin >> str){
double res = 0.00;
int number = 0, length = str.size(), i = 1;
char last = str[0];
while(i <= length){
if(last != str[i]){
number++;
last = str[i];
}
++i;
}
res = length / (double)number;
char num[10];
sprintf(num, "%.2f", res);
cout << num << endl;
}
}