输入1 个正整数n,将其转换为二进制后输出。 C语言求解:1.输入一个正整数,将其转换为二进制并输出? 2...
\u8f93\u5165\u4e00\u4e2a\u6574\u6570,\u5c06\u5176\u8f6c\u5316\u4e3a\u4e8c\u8fdb\u5236\u6570\u8fdb\u884c\u8f93\u51fa\u7528c\u8bed\u8a00#includeint main(){ int i=0,n; char bin[32]; scanf("%d",&n); while(n) { bin[i]=(n&1)+'0'; n=n>>1; i++; } for(i=i-1;i>=0;i--) printf("%c",bin[i]); return 0;}
1.
#include
#include
main()
{
int num;
char s[128];
printf("input a number:");
scanf("%d",&num);
itoa(num,s,2);
printf("\u4e8c\u8fdb\u5236\u662f\uff1a%s\n",s);
}
2.
#include
main()
{
int num,i;
printf("\u8bf7\u8f93\u5165\u4e00\u4e2a\u6570(100~1000\u4e4b\u95f4):");
scanf("%d",&num);
if(num>=100&&num<=1000)
{
i=num*num;
printf("%d*%d=%ld\n",num,num,i);
}
else printf("\u4f60\u7684\u8f93\u5165\u6709\u8bef\n");
}
程序源码如下:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
using namespace std;
void dectobin(int n) {//转换二进制函数
int in = n / 2;
int out = n % 2;
if (n == 0) {
return;
}
dectobin(in);//进行递归
printf("%d", out);
}
void main() {
int m; // 输入的整数
scanf("%d", &m);
dectobin(m);//调用函数
return;
}
程序运行结果如下:
扩展资料:
其他实现方法
#include<stdio.h>
int main()
{
int num, a[20], i = 0;
printf("Input a number:");
scanf("%d", &num);
while (num < 0)
exit(0);
while (num != 0)
{
a[i] = num % 2;
num = num / 2;
i++;
}
i--;
while (i >= 0)
{
printf("%d", a[i]);
i--;
}
return 0;
}
用了递归的方法来实现这个函数.
#include< stdio.h >int main(void)
{
int ri,repeat;
int i,n;
void dectobin( int n );
scanf( "%d", &repeat ); for( ri = 1; ri <= repeat; ri++ )
{
scanf("%d",&n);
dectobin(n);
printf("\n");
}
} void dectobin( int n )
{
if( n > 1 )
dectobin( n / 2 );
printf( "%d", n % 2 );
}
int dectobin(int x)
{
int a;
if(x==0){
return 0;
}
else{
a=x%2;
x/=2;
dectobin(x);
printf("%d",a);
}
}
短除法除二倒去余(递归法(要循环))
void dectobin(int n)
{
int r;
r=n%2;
if(n>=2)
dectobin(n/2);
putchar('0'+r);
}
扩展阅读:免费的音频转换器 ... 4.035 2.4保留整数 ... 万能转换器 ... 2x+a 1只有3个正整数解 ... 编写一个n的阶乘程序 ... 1.55 3.9保留整数 ... 正整数集为什么用n+ ... 轮流报数 每次只能报1或2 ... 输出偶数 输入一个正整数n ...