UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces

Regionals 1995 >> North America - East Central NA

问题链接UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces

题意简述:输入若干测试实例,每个实例首先输入n,之后输入n行字符串,若n=0则程序结束。每行的字符串包含字符"X"和空格,"X"在两边,空格在中间。可以用左边或右边的X去填充中间的空格,每行填充的"X"都一样多,问某行空格被填充完时,总共还剩下多少空格。

问题分析:这个问题实际上就是统计空格数和找空格最少行有多少空格问题。剩余空格数=总空格数-空格最少行的空格数×n。

程序说明:直接按字符读入处理,没有使用输入缓冲区

AC的C语言程序如下:

/* UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces */

#include <stdio.h>

#define MAX 100000

int main(void)
{
    int n, sum, min, count, i;
    char c;

    while(scanf("%d\n", &n) != EOF && n != 0) {
        sum = 0;
        min = MAX;
        for(i=1; i<=n; i++) {
            count = 0;

            c = getchar();
            while(c != '\n') {
                if(c == ' ') {
                    sum++;
                    count++;
                }
                c = getchar();
            }

            if(count < min)
                min = count;
        }

        printf("%d\n", sum - min * n);
    }

    return 0;
}


posted on 2016-08-17 13:36  海岛Blog  阅读(160)  评论(0编辑  收藏  举报

导航