这个问题一直纠结啊。。。。 不知道为什么老是出错,请各位大虾帮忙...

2024-12-18 20:58:55
推荐回答(2个)
回答1:

/*
3
case #1: A
65
2/8 <==> 25.00%
case #2: A,Bx y@12
65 44 66 120 32 121 64 49 50
24/72 <==> 33.33%
case #3: 计算字符串的数据密度。
188 198 203 227 215 214 183 251 180 174 181 196 202 253 190 221 195 220 182 200 161 163
107/176 <==> 60.80%
Press any key to continue
*/
#include
#include

int main() {
int i,t;
void solve();
scanf("%d",&t);
for (i = 1;i <= t;i++) {
printf("case #%d: ",i);
solve();
}
return 0;
}

void solve() {
char s[120];
int ch,sum = 0,i,size;
fflush(stdin);
gets(s);
for(i = 0;s[i] != '\0';i++) {
ch = s[i];
while(ch != 0) {
if(ch%2) sum++;
ch = ch/2;
}
}
size = 8 * sizeof(char) * strlen(s);
printf("%d/%d <==> %.2lf%%\n",sum,size,100.0 * sum/size);
}

回答2:

加20分,我给你检查。