13520498 | 414 | Machined Surfaces | Accepted | ANSI C | 0.009 | 2014-04-19 23:52:55 |
【问题描述】
有几组 N行*25个字符的“图片”(以字符“X”为内容),每行中间有裂缝(空格),求出将图片“拼”成一起后剩下的缝隙大小(空格数)。
【解决过程】
思路:求出图片中每行X的最大个数max和N行X的总数sum,max*N-sum即为所求。代码如下:
#include<stdio.h>
#include<string.h>
int main(){
int n;
while(scanf("%d",&n)==1){
int i,j,num[n],sum=0,max=-1;
for(i=1;i<=n;i++){
char c;
memset(num,0,sizeof(num));
for(j=1;j<=25;j++)
if((c=getchar())=='X') num[i-1]++;
getchar();
if(num[i-1]>max) max=num[i-1];
sum+=num[i-1];
}
if(n>0) printf("%d\n",n*max-sum);
}
return 0;
}
【教训】
1、输入数据时注意如果用getchar()要在读取每行25个字符后再读一次'\n'。