PAT刷题记录–12.30
B1030 直方图
特征:思路非常简单,但是在一些细节上容易犯错,比如找最大阈值,与设置应该输出非空的限制值。
1. #include "stdio.h"
2. #include "string.h"
3. int main(){
4. char s[1000];
5. int num;
6. while (scanf("%s", &s) != EOF)
7. {
8. int max = 0, count = 0;
9. int ss[100] = { 0 };
10. num = strlen(s);
11. for (int i = 0; i < num; i++)
12. {
13. count = s[i] - 48;
14. ss[count] = ss[count] + 1; }
15. for (int i = 0; i < 10; i++)
16. if (max < ss[i])
17. max = ss[i];
18. for (int i = 1; i <=max; i++)
19. {
20. for (int j = 0; j < 10; j++)
21. {
22. if (ss[j] >max-i)
23. printf("*");
24. else
25. printf(" ");
26. }
27. printf("\n");
28. }
29. for (int j = 0; j < 10; j++)
30. printf("%d", j);
31. printf("\n");
32. }}