代码实现的是输入小于80位的格雷码,转换为自然二进制码,编译没问题,但是运行后输入一个数系统就会崩溃,请问原因是什么呢?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[81];
int b[80],i,n;
printf("请输入格雷码,按s键结束输入\n");
for(i=0;i<=80;i++){
a[i]=getche();
if(a[i]=='s')
break;
b[i]=atoi(a[i]);//将单个字符转换为数字
}
i=i-1;
printf("你输入的格雷码是:\n");
for(n=0;n<=i;n++)
printf("%d",b[n]);
printf("输出的自然二进制码:\n");
for(n=1;n<=i;n++){
b[n]=b[n]^b[n-1];
printf("%d",b[i]);
}
system("pause");
return 0;
}
|