参考代码如下:
#include <stdio.h> #include <string.h> #include <stdlib.h> //处理数据并输出 void process(int num) { if (num == 0) //若num == 0,直接输出结果并退出 { printf("0\n"); return; } int bits[32]; //存放num对应的二进制数的每位数字 int bitsindex = 0; int flag = 0; //定义一个标志位,输出时可以判断是否为负数 if (num < 0) { flag = 1; num = -num; } while (num != 0) { bits[bitsindex++] = num % 2; num = num / 2; } if (flag == 1) //若是负数,先打印一个“-” printf("-"); int i; for (i = bitsindex - 1; i >= 0; i--) //倒序打印数组,即就是num的二进制表示 { printf("%d", bits[i]); } printf("\n"); } int main(void) { int input[50]; //存放输入数据的数组 int index = 0; int num; while (scanf("%d", &num) != EOF) { input[index++] = num; } int i; for (i = 0; i < index; i++) { printf("%d-->", input[i]); process(input[i]); } return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:778 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1043 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:636 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:366 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:582 |
数对 (C语言代码)浏览:762 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1100 |
分糖果 (C语言代码)浏览:980 |
整除问题 (C语言代码)浏览:594 |
C二级辅导-等差数列 (C语言代码)浏览:891 |