新手,编写了一个十进制转换二进制的代码?但是只有一部分答案正确,求解?
程序代码:
//十进制转二进制的小程序 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编辑过]