{UVA} UVA-414 解题报告
2010-05-18 12:01
260 查看
题目没有难度,逻辑上十分清晰,唯一纠结点的可能就是题目比较长..
这个题目需要注意的一点就是用scanf输入一个整数后回车,再用fgets去读时,会直接读到换行,也就是直接结束掉了.
因此需要在scanf后面用getchar()或者是fgetc(stdin)处理一下.
(同样,注意把数组适当加大,防止越界)
PS.我在这个题上卡了2个多小时,一直WA. 结果发现我一直用的max来记最多的空格数.但是题目的意思我又十分清楚.
所以还是对待错误没有清醒的头脑去解决.
Tip: 当发现答案不正确,而又将一些输入输出及边界考虑好的时候,应当抛弃原来对题目的思维,用对待新问题的眼光再一次 去验证程序的逻辑.
代码如下:
这个题目需要注意的一点就是用scanf输入一个整数后回车,再用fgets去读时,会直接读到换行,也就是直接结束掉了.
因此需要在scanf后面用getchar()或者是fgetc(stdin)处理一下.
(同样,注意把数组适当加大,防止越界)
PS.我在这个题上卡了2个多小时,一直WA. 结果发现我一直用的max来记最多的空格数.但是题目的意思我又十分清楚.
所以还是对待错误没有清醒的头脑去解决.
Tip: 当发现答案不正确,而又将一些输入输出及边界考虑好的时候,应当抛弃原来对题目的思维,用对待新问题的眼光再一次 去验证程序的逻辑.
代码如下:
#include<stdio.h> #include<string.h> char buf[13+2][25+5]; int n[13+2]; int main() { int d,i,j,min,x; while(1) { scanf("%d",&d); if(d == 0) break; fgetc(stdin); min = 25; x = 0; memset(n,0,sizeof(n)); for(i = 0; i < d; i++) { fgets(buf[i],30,stdin); for(j = 0; j < 25; j++) { if(buf[i][j] == ' ') n[i]++; } if(n[i] < min) min = n[i]; } for(i = 0; i < d; i++) { x = x + n[i] - min; } printf("%d/n",x); } return 0; }
相关文章推荐
- 【解题报告】uva10066_The Twin Towers(双塔, dp, LCS)
- UVA 12535 Probability Through Experiments 解题报告
- {UVA} UVA-490 解题报告
- Uva 10870 Recurrences 解题报告(矩阵快速幂)
- 【解题报告】UVALive 3938 线段树深入使用
- UVA815 洪水(重庆一中高2018级信息学竞赛测验3) 解题报告
- UVA 12582 Wedding of Sultan 解题报告
- UVA10456 解题报告
- Uva 1319 - Maximum 解题报告(数学)
- 解题报告 之 UVA1347 Tour
- UVA 10305 Ordering Tasks 解题报告
- UVAlive 3890&Poj3525 半平面交+二分 解题报告
- UVa 152 - Tree's a Crowd解题报告
- UVa 156 - Ananagrams解题报告
- 刘汝佳紫书 uva220 解题报告
- UVa 11234 Expressions解题报告
- UVALive 6582 Magical GCD (数学+数据结构) -- 解题报告
- UVA 10010 解题报告
- UVA 10115 解题报告
- 第三章:UVa1586 解题报告