您的位置:首页 > 其它

POJ 2800 垂直直方图 解题报告

2009-02-27 22:47 302 查看
POJ 2800 垂直直方图 解题报告

编号:2800

 

考查点:简单计算题

 

思路: 用gets()读入4行数据,然后按字符统计,显示的时候有点小处理即可.

提交情况: 感觉POJ的测试数据有点骗人,特殊字符好像不止那三个,导致我Runtime Error了几次,改了字符是否是字母的判断条件就AC了.。

 

Source Code:

 

//POJ Grids 2800

#include <string>

#include <iostream>

using namespace std;

int num[26];

int main()

{

    char str[200];

    for (int i=0;i<4;i++)

    {

        memset(str,0,sizeof str);

        gets(str);

        int len = strlen(str);

        for (int j=0;j<len;j++)

        {

            if (str[j]>='A'&&str[j]<='Z')

            {

                num[str[j]-'A']++;

            }

        }

    }

    int max = 0;

    for (int i=0;i<26;i++)

    {

        if (num[i]>max)

        {

            max = num[i];

        }

    }

    for (int i=max;i>0;i--)

    {

        for (int j=0;j<26;j++)

        {

            if (num[j]>=i)

                cout<<"* ";

            else

                cout<<"  ";

        }

        cout<<endl;

    }

    for (int i=0;i<26;i++)

    {

        cout<<(char)('A'+i)<<" ";

    }

    cout<<endl;

    return 0;

}

总结:这个应该是最近做的一道比较不水的题了,虽然也很水.还有,本子出了点问题,严重影响做题.。

 

                                                       By   Ns517

                                                     
Time 09.02.26
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: