随笔-145  评论-173  文章-70  trackbacks-0
#include<stdio.h>
#define MAX 4
void main()
{
    int n,num=0,per=0;
    int i,j;
    char a[MAX][MAX];
    scanf("%d%*c",&n); //开始这里没有虚读,所以回车键被后面的字符读入了。因为我没有处理,后面   
    while(n!=0)             //就直接读入了。一定要注意这个问题。
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%c",&a[i][j]);
            }
            getchar(); //读入回车符,每次结束的时候
        }
        for(i=0;i<n;i++)  //求出每行的个数并估计最多
        {
            for(j=0;j<n;j++)
                if((a[i][j]=='x')||(a[i][j]=='X'))
                    ++num; //这里直接用它,原来还分每次都用一个per来求个数。
        }
        printf("%d\n",num);
    }
}

相比较而言,下面的代码更完善:
#include<stdio.h>
#define MAX 4
void main()
{
    int n,num=0,per=0;
    int i,j;
    char a[MAX][MAX];
    while(scanf("%d%*c",&n)!=0)
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%c",&a[i][j]);
            }
            getchar(); //读入回车符,每次结束的时候
        }
        for(i=0;i<n;i++)  //求出每行的个数并估计最多
        {
            for(j=0;j<n;j++)
                if((a[i][j]=='x')||(a[i][j]=='X'))
                    ++num;
        }
        printf("%d\n",num);
        num=0;
    }
}
首先,将读入送入while中,每次都要循环判断多少。其次,每次while完成后,记得要清零,否则的话会继续的叠加num,这样最终得到的就不是每次输入矩阵的x的个数了。
posted on 2009-11-27 21:22 deercoder 阅读(278) 评论(0)  编辑 收藏 引用 所属分类: 编程体会和收获

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理