首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组首先个数被冲掉,什么情况

2013-12-07 
数组第一个数被冲掉,什么情况?void calculate2(){char x[8],y[8],ans[8]int i0,j0,h[8]{0}printf(输

数组第一个数被冲掉,什么情况?

void calculate2()
{
char x[8],y[8],ans[8];
int i=0,j=0,h[8]={0};
printf("输入第一个补码(限8位):");
scanf("%s",x);
printf("输入第二个补码(限8位):");
scanf("%s",y);

for(i=0;i<8;i++)
{
if(x[i]=='0'&&y[i]=='0')
ans[i]='0';
else if(x[i]=='0'&&y[i]=='1')
ans[i]='1';
else if(x[i]=='1'&&y[i]=='0')
ans[i]='1';
else if(x[i]=='1'&&y[i]=='1')
{
ans[i]='0';
h[i]=1;
}
}
for(i=7;i>=0;--i)
{
if(h[i]=='0');
else if(h[i]==1)
{
if(i=0)continue;
for(j=i-1;j>=0;--j)
{
if(ans[j]=='0')
{
ans[j]='1';
break;
}else{
ans[j]='0';
}
}
}
}

printf("加法运算后的结果为:");
for(i=0;i<8;++i)
printf("%c",ans[i]);
printf("\n");
}


输出ans数组时,ans[0]=‘?’.
经过我断点调试,发现输入x,y的值的时候已经出了问题。
输入第二个值(即y值)的时候,x[0]的值被冲掉了。不明白是什么情况,我肯定输入的是8位数字,望大神指教~~~谢谢!
[解决办法]
楼主你知道8个字符需要9个字节来存储吗?

热点排行