我的編程樂園
積累,堅(jiān)持!
---------我是一只IT小小鳥
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-145 評論-173 文章-70 trackbacks-0
數(shù)據(jù)讀入的問題(巨大的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);
//
開始這里沒有虛讀,所以回車鍵被后面的字符讀入了。因?yàn)槲覜]有處理,后面
while(n!=0)
//
就直接讀入了。一定要注意這個問題。
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%c",&a[i][j]);
}
getchar(); //讀入回車符,每次結(jié)束的時(shí)候
}
for(i=0;i<n;i++)
//求出每行的個數(shù)并估計(jì)最多
{
for(j=0;j<n;j++)
if((a[i][j]=='x')||(a[i][j]=='X'))
++num;
//這里直接用它,原來還分每次都用一個per來求個數(shù)。
}
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(); //讀入回車符,每次結(jié)束的時(shí)候
}
for(i=0;i<n;i++)
//求出每行的個數(shù)并估計(jì)最多