414 - Machined Surfaces

Sample Input (character "B" for ease of reading. The actual input file will use the ASCII-space character, not"B").

 

4
XXXXBBBBBBBBBBBBBBBBXXXXX
XXXBBBBBBBBBBBBBBBXXXXXXX
XXXXXBBBBBBBBBBBBBBBBXXXX
XXBBBBBBBBBBBBBBBBBXXXXXX
2
XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXXBBBBBBBBBBBBBBXX
0

 

Sample Output

 

4
0
0

----------------------------------------
题目很难看懂,大意就是计算每次总得空格数,以及获得每行最小的空格数,输出sum - min*linNum。
AC代码:
注意第11行getchar()。后面scanf("%c”,&ch)的话会先获得换行符。
 1 #include<stdio.h>
 2 int main(){
 3     int n;
 4     int i;
 5     int min = 1000, sum,tmp;
 6     char ch;
 7 
 8     while(scanf("%d",&n) != EOF){
 9         printf("n:%d\n",n);
10         if(n == 0) break;
11         getchar();
12         sum = 0; min = 1000;  
13         for(i = 0; i < n;i++){
14             tmp = 0;
15             while(1){
16                 scanf("%c",&ch);
17
18 if(ch == ' '){ 19 tmp++; 20 sum++; 21 } 22 else if(ch == '\n') 23 break; 24 } 25 min = min > tmp ? tmp:min; 26 } 27 printf("%d\n",(sum - min*n)); 28 29 } 30 return 0; 31 }
posted @ 2014-12-16 14:00  繁星苑  阅读(12107)  评论(0编辑  收藏  举报