文栏 - 信息技术 - 浏览文章 - ACM/ICPC题目中对各种输入方式的处理方法
ACM/ICPC题目中对各种输入方式的处理方法
发布时间: 2008/12/26 18:12:29 作者: 素素 出处: 本站发布
1. 先输入n,代表有n组数据。e.g. 1264-(2007新生赛) 不倒翁闹钟
scanf("%d", &n);
for (i=0; i<n; i++)
{
    // 根据题目进行处理
}

2. 以一个整数(例如0)表示结束。e.g. 1058-(BNU2006新生邀请赛) 连连看游戏
while (1)
{
    scanf("%d", &n);
    if (n == 0)
    {
        break;
    }
        // 根据题目进行处理
}

另一种方法:
scanf("%d", &n);
while (n != 0)
{
    // 根据题目进行处理
        scanf("%d", &n);
}

3. 以两个整数(例如0 0)表示结束。e.g. 1057-(BNU2006新生邀请赛) 魔方
while (1)
{
    scanf("%d%d", &n, &m);
    if (n==0 && m==0)
    {
            break;
        }
        // 根据题目进行处理
}

另一种方法:
scanf("%d%d", &n, &m);
while (n!=0 || m!=0)
{
    // 根据题目进行处理
        scanf("%d%d", &n, &m);
}

4. 以某种字符串(例如"END")表示结束。e.g. 1263-(2007新生赛) 疯狂英语
char c[101];        // 这个字符数组的长度视题目描述而定,特别要注意给 '\0' 留出存储空间。
while (1)
{
    gets(c);
    if ( strcmp(c,"END") == 0 )
    {
        break;
    }
        // 根据题目进行处理
}

另一种写法:

gets(c);
while (strcmp(c,"END") != 0)
{
    // 根据题目进行处理
        gets(c);
}

5. 以EOF表示结束。e.g. 1059-(BNU2006新生邀请赛) 星际争霸之单挑
while ( scanf("%d",&n) != EOF )
{
    // 根据题目进行处理
}
所属分类: 信息技术   所属专题: 原创
共有 6237 人次浏览

评论作者:
电子邮件:
评论内容:
投票评价:
验 证 码:
图片包含4个随机字符,点击刷新
请输入上面图片中的随机字符