c语言如何用if语句判断数组是否为空字符
我是这样写的if(a[x][y]=='\0')我用断点调试每次运行到这里好像都会发生错误,不知道是不是我写错了,求解答我把int型的a改为char型的了,数组为a[5][...
我是这样写的 if(a[x][y]=='\0') 我用断点调试每次运行到这里好像都会发生错误,不知道是不是我写错了,求解答
我把int型的a改为char型的了,数组为a[5][5],在执行到以下循环前x=4,y=3,但是用断点调试时发现明明a[x][y]=='\0'这个条件是真(说明:a[4][3]我没赋过值),但却去执行else的内容了
if(a[x][y]=='\0')
{
i=x;
j=y;
}
else i++;
}
其实不知道我要编什么的话估计也弄不清我的代码,所以之前都没发代码
#include<stdio.h>
int main()
{
int i=0,j=2,x,y,n=2;
char a[5][5];
a[0][2]=1;
for(n=2;n<=25,n++)
{
x=i;y=j;
x--;y++;
if(i==0&&j==4)
i++;
else
{
if(x<0) x=4;
if(y>4) y=0;
if(a[x][y]=='\0')
{
i=x;
j=y;
}
else i++;
}
a[i][j]=n;
}
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{
printf("%5d",a[i][j]);
if(j%4==0) printf("\n");
}
return 0;
} 展开
我把int型的a改为char型的了,数组为a[5][5],在执行到以下循环前x=4,y=3,但是用断点调试时发现明明a[x][y]=='\0'这个条件是真(说明:a[4][3]我没赋过值),但却去执行else的内容了
if(a[x][y]=='\0')
{
i=x;
j=y;
}
else i++;
}
其实不知道我要编什么的话估计也弄不清我的代码,所以之前都没发代码
#include<stdio.h>
int main()
{
int i=0,j=2,x,y,n=2;
char a[5][5];
a[0][2]=1;
for(n=2;n<=25,n++)
{
x=i;y=j;
x--;y++;
if(i==0&&j==4)
i++;
else
{
if(x<0) x=4;
if(y>4) y=0;
if(a[x][y]=='\0')
{
i=x;
j=y;
}
else i++;
}
a[i][j]=n;
}
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{
printf("%5d",a[i][j]);
if(j%4==0) printf("\n");
}
return 0;
} 展开
展开全部
if(a[x][y]=='\0') 是判断数组是否到了末尾,空,NULL,宏定义为0
-物联网校企联盟技术部
-物联网校企联盟技术部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-13
展开全部
请楼主发详细代码?这样看看不出什么的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样判断无问题,可能是x,y超界。
a是char型吗
a是char型吗
追问
a是int型的
追答
int型这样写没有意义,'\0'就是0,与==0是一样的
》》(说明:a[4][3]我没赋过值),但却去执行else的内容了
如果没赋过值,则是随机的(与编译器有关),这样判断不行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询