7-4 十进制转二进制 (10 分)
编写一个函数,其参数是一个整数N,返回值也是一个整数(假设是R),规则是整数R写出来(输出出来)是N的二进制形式。例如:参数是15,返回值应是1111。主函数中输入若干组整数,依次输出其二进制形式。
样例">输入样例:
15 16 17 63 64 65
结尾无空行
输出样例:
1111
10000
10001
111111
1000000
1000001
结尾无空行
输入样例:
0 1 123 456 789
结尾无空行
输出样例:
0
1
1111011
111001000
1100010101
#include <stdio.h>
int main()
{
int a,f,e,b[100],d,c;
while(scanf("%d",&a)!=EOF)
{
f=a;
for(e=0;a>0;e++){
b[e]=a%2;
a=a/2;
}
if(f==0){
printf("0");
}else{
for(d=e-1;d>=0;d--){
printf("%d",b[d]);//记得反过来输出。
}
}
printf("\n");
}
}
同学们对于这道题,估计就在于EOF,多组数据,如果没有继续读到就会是EOF,而退出循环,
这对于题目没有明确说多少组数,非常好用,因为这道题是用函数的,其实没用也没啥的,写出这个代码,转换成自定义函数也是很简单的。