UVA_414:Machined Surfaces

技术分享

技术分享

技术分享技术分享

Language : C++ 4.8.2


#include<stdio.h>
#include<string.h>
int main(void)
{
    int n;
    int sum; // 记录每一组数据里面所有空格的个数
    int count; // 记录单行的个数
    int length;
    int min_space;
    char str[30];
    while(1)
    {
        min_space = 25;
        sum = 0;
        scanf("%d\n", &n); // 注意这里scanf里面的‘\n‘,它不是那种常见的bug,而是为下面的fgets做铺垫的,否则fgets的第一次读取会向str中填充一个换行符然后以‘\0‘结尾。
        if(n == 0)
            break;
        int m = n; 
        while(m--) // 一开始没有保存n的值,而是直接n--,导致后面printf计算的时候杯具了,输出结果一看,立即意识到了这块有问题,遂改之。
        {
            count = 0;
            fgets(str, sizeof(str), stdin);
            length = strlen(str) - 1; // fgets读取字符长度和实际字符长度在空间足够的情况下是有差别的。
            for(int i = 0; i < length; i++)
            {
                if(str[i] ==  )
                {
                    sum++;
                    count++;
                }
            }
            if(min_space > count)
                min_space = count;
        }
        printf("%d\n", sum-n*min_space);
    }
    
    return 0;
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。