我的编程乐园
积累,坚持!
---------我是一只IT小小鸟
首页
新随笔
联系
聚合
管理
随笔-145 评论-173 文章-70 trackbacks-0
数据读入的问题(巨大的BUG)
#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++)
//求出每行的个数并估计最多