c语言刚入门,问一下十进制如何转换二进制,并判断输入的十进制是否合法?
展开全部
十进制转化为二进制可以采用递归的方法或者数组加循环的方法。要判断一个十进制数是否合法,首先需要知道什么样的实数才是合法的。使用C语言的输入函数输入时C语言系统自动会过滤不合法的字符。遇到非十进制的字符,它会自动结束读取。所以说,具体什么样的情况属于非法要有更加进一步的说明,并且给出例子。下面的程序是判断一个输入的年龄是否合法,并且把它合法的年龄转换为二进制的程序。
#include
void dec2bin(int n)
{if(n>1)dec2bin(n/2);
printf("%d",n%2);
}
int main()
{ int age; //年龄,若为负数,或>150认定为非法
scanf("%d",&age);
if(age150)
printf("Invalid age!");
else
{printf("%d=(",age);
dec2bin(age);
printf(")2\n");
}
return 0;
}
展开全部
代码如下:
#include<stdio.h> /*输入输出头文件*/
void main() /*空类型:主函数*/
{
int b[16],x,k,r,i; /*定义变量和数组的数据类型为整型*/
printf("输入一个十进制:"); /*输出文字提示*/
scanf("%d",&x); /*输入一个十进制数字*/
k=-1; /*将-1赋给k*/
do /*用循环将十进制的数转化成二进制的数*/
{
r=x%2; /*用除R取余倒计法计算二进制*/
b[++k]=r; /*将值赋给数组*/
x/=2; /*将原数除2*/
}while(x>=1);
for(i=k;i>=0;i--) /*将上面倒计的数正回来*/
printf("%d ",b[i]); /*输出结果*/
printf("\n");
}
运行结果:
输入一个十进制:45
1 0 1 1 0 1
楼主若觉得回答有所帮助,望采纳,谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询