Blog·Tanky WooABOUTRSS

BUCT OJ 1793 Judging ACM/ICPC

01 Sep 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

题目链接: http://coder.buct.edu.cn/oj/Problem.aspx?pid=1793


题目是水题,但是这题考察到了一个我的缺陷:基础的不牢。 上不去这题的可以在百度搜这句话:“without unnecessary decimal points and/or zeros” 第一面会出现N个OJ,都是这题。

我第一次AC用的是cout,cout确实很只能,能实现: without unnecessary decimal points and/or zeros

#include 
#include 
using namespace std;

int main()
{
    int x, cnt;
    while(1)
    {
        int imax=-1, imin=11;
        int sum = 0;
        int flag=0;
        for(int i=0; i<6; ++i)
        {
            scanf("%d", &x;);
            if(x)
                flag=1;
            if(x > imax)
                imax = x;
            if(x < imin)
                imin = x;
            sum += x;
        }
        if(flag==0)
            break;
        sum -= (imax+imin);
        cout << sum / 4.0 << endl;
    }
    return 0;
}

可是总觉得,printf也应该有这样的输出控制,于是看了其他人的代码,原来是用%g控制,这里就顺便把常用的控制输入输出贴出来:

%A 浮点数、十六进制数字和p-记法(C99)

%c 一个字符

%d 有符号十进制整数

%e 浮点数、e-记数法

%E 浮点数、E-记数法

%f 浮点数、十进制记数法

%g 根据数值不同自动选择%f或%e.

%G 根据数值不同自动选择%f或%e.

%i 有符号十进制数(与%d相同)

%o 无符号八进制整数

%p 指针

%s 字符串

%u 无符号十进制整数

%x 使用十六进制数字0f的无符号十六进制整数

%X 使用十六进制数字0f的无符号十六进制整数

%% 打印一个百分号 使用printf ()函数 printf()的基本形式: printf("格式控制字符串",变量列表);

#include 
#include 
using namespace std;

int main()
{
    int x, cnt;
    while(1)
    {
        int imax=-1, imin=11;
        int sum = 0;
        int flag=0;
        for(int i=0; i<6; ++i)
        {
            scanf("%d", &x;);
            if(x)
                flag=1;
            if(x > imax)
                imax = x;
            if(x < imin)
                imin = x;
            sum += x;
        }
        if(flag==0)
            break;
        sum -= (imax+imin);
                printf("%g\n", sum/4.0);
    }
    return 0;
}