| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1394 人关注过本帖
标题:数星星问题
只看楼主 加入收藏
yu836618672
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-12-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
数星星问题
description
天空非常晴朗,外面很静很静,连小虫儿的鸣叫声都能听见。天就渐渐变黑了,天空中出现了一颗颗星星,它们一闪一闪的好像在眨着眼睛又好像在向我述说着什么似的。望着,望着,我就禁不住要数星星了,一颗,两颗,三颗,四颗,五颗……数着,数着,就分不清哪些数过了,哪些还没数过。你能帮忙数清天上有几颗星星吗?
 
input
有多组测试数据。每组开头有两个整数M,N(0< M,N <=100),接下来有M行N列字符。*代表星星,.代表天空。
 
output
输出星星数,每组数据输出仅占一行!
 
sample_input
1 1
*
2 2
* .
. *

 
sample_output
1
2

 
我的代码是
#include <stdio.h>
int main ()
{
    int n,m,i,j,sum;
    char a[102][102];
    while(scanf("%d%d",&m,&n)!=EOF)
    {if (n<=100&&n>0&&m<=100&&m>0)
    {sum=0;
    for (i=0;i<m;i++)
     for (j=0;j<n;j++)
     {getchar();
    scanf("%c",&a[i][j]);}
     for (i=0;i<m;i++)
    for (j=0;j<n;j++)
       if (a[i][j]==42)
       sum++;
       printf("%d\n",sum);
    }
    }
     
    return 0;
}
结果对了
提交就是wrong answer就是不过
错在哪里了?
搜索更多相关主题的帖子: 测试 眼睛 天空 
2011-12-03 08:59
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:20 
原题里星星和天空之间有一个空格么?
用gets按行读取吧,可以避免上面的问题。

重剑无锋,大巧不工
2011-12-03 09:10
yu836618672
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-12-3
收藏
得分:0 
有空格的 gets怎么读?把数组加大?
能不能详细说下
我新手
2011-12-03 09:23
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
在浙江工业大学的OJ上找到一个和这道题很相似的题,描述完全相同,但输入格式与你的要求不一样,它是以0 0结束。字符间也没有空格。
这是AC代码。你在题具体是哪的?
程序代码:
#include<stdio.h>
int main()
{
    int m, n;
    char line[128], *p;
    while(scanf("%d%d\n", &m, &n), m)
    {
        for(n = 0; m--;)
        {
            gets(line);
            for(p = line; *p != '\0'; p++)
                if(*p == '*') n++;
        }
        printf("%d\n", n);
    }
    return 0;
}

重剑无锋,大巧不工
2011-12-03 10:11
yu836618672
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-12-3
收藏
得分:0 
回复 4楼 beyondyf
东北林业大学acm   acm.nefu.
2011-12-03 10:23
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
将while(scanf("%d%d\n", &m, &n), m) 改成 while(scanf("%d%d\n", &m, &n) != EOF)就可以了。
你们学校的题描述太模糊,质量不高。去北大、杭电、北杭玩吧。
 

重剑无锋,大巧不工
2011-12-03 10:59
快速回复:数星星问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020929 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved