用c语言编程序,要求输入0结束,开头的while有问题吗?为什么是死循环?
#include<stdio.h>intmain(){intm,n,i,j,count;inta[10][10],b[10][10];while(scanf("%d",&...
#include<stdio.h>
int main()
{
int m,n,i,j,count;
int a[10][10],b[10][10];
while(scanf("%d",&m)!=0 && m!=EOF)
{
count=0;
scanf("%d",&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&b[i][j]);
a[i][j]+=b[i][j];
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]!=0)
break;
}
if(j==n)
count++;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[j][i]!=0)
break;
}
if(j==m)
count++;
}
printf("%d\n",count);
}
return 0;
} 展开
int main()
{
int m,n,i,j,count;
int a[10][10],b[10][10];
while(scanf("%d",&m)!=0 && m!=EOF)
{
count=0;
scanf("%d",&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&b[i][j]);
a[i][j]+=b[i][j];
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]!=0)
break;
}
if(j==n)
count++;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[j][i]!=0)
break;
}
if(j==m)
count++;
}
printf("%d\n",count);
}
return 0;
} 展开
展开全部
你的m是个整数,而EOF表示的是文件结束,为它定义的值好像是-1.也就是说当你m输入为-1时,它应该就结束了。如果你想以输入0结束并判断是否到了末尾的话,就把你的两个判断换一下:
while(scanf("%d",&m) != EOF && m != 0)
while(scanf("%d",&m) != EOF && m != 0)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有个注释怎么看啊 你这要实现什么 这么多循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询