我在制作一个节目。您可以输入正常数字,程序应首先以二进制代码转换它,然后将其复制到字符串中。如果我开始编程并输入一个数字,则没有任何反应。
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i;
unsigned short input;
char output [18] = "";
printf("enter a positive number\n");
scanf("%hu", &input);
for (i= 16; 1; i-- )
{
output [i] = input % 2;
input = input / 2;
}
puts(output);
return 0;
}
答案 0 :(得分:0)
output
应该是NUL终止的,因此short int
需要16个字节,空字符需要1个
char output [17];
将<{1}}的ASCII值添加到结果中以获取0
或0
1
最后添加空字符:
for(i = 16; i >= 0; i--)
{
output[i] = '0' + input % 2;
input = input / 2;
}
或者您可以使用移位运算符
output[16] = 0;