新手,编写了一个十进制转换二进制的代码?但是只有一部分答案正确,求解?
程序代码:
//十进制转二进制的小程序
int main(){
int s = 13; //假设输入了一个13,----------------------问题在此,输入100以下可以正常运行,1000程序正常,答案不对,10000的时候程序崩溃
int y = 0; //定义一个余数
int i = 0; //定义数组下表起始数为 0
int a[i+1]; //定义一个数组 一共有i+1个元素
while (s != 0) { //当商不等于0的时候求余数,并把余数放入数组中
y = s % 2; //第一次求求余数
printf("%d",y);
a[i] = y; //把余数放入数组中
i++; //因为下次放入的数组要+1所以这里需要 i++
s /= 2; //并且重新把商的值变成除以2的值
}
printf("\n");
printf("%d\n",i);
for (int j = 0; j < i; j++) { //最后反向打印数组
printf("%d",a[i-1-j]);
}
return 0;
}
[此贴子已经被作者于2015-10-26 13:29编辑过]









我是新手,刚学加自学的。。。。不值得采信,就是发表下看法

