1141: 进制转换
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 3764 Solved: 1128
Submit Status Web Board
Description
将十进制整数n转换成二进制,并保存在字符数组中,最后输出。要求定义并调用convert()函数, 将十进制整数n对应的二进制数存入字符数组str中。
void convert(int n, char str[]);
Input
输入一个非负整数n,n<2^31。
Output
输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。
Sample Input
13
Sample Output
1101
HINT
Source
#include<stdio.h>
#include<string.h>
#define N 50
void BTOD(int n,char str[]);
int main ()
{
int n,lenth,i,f=0;
char str[N];
scanf("%d",&n);
if (n==0)
{
printf("%d",f);
}
BTOD(n,str);
// puts(str);
lenth=strlen(str);
// printf("%d\n",lenth);
for (i=lenth-1;i>=0;i--)
{
printf("%c",str[i]);
}
printf("\n");
return 0;
}
//反复除以2取余数存入str//
void BTOD(int n,char str[])
{
int len=0;
while ( n > 0)
{
str[len] = n % 2 + '0';//将n%2转换为字符存入str[len]//
len ++;
n = n / 2;
}
str[len]='\0';//在str的有效元素之后加上字符串结束标志'\0'
//使用strrev(str)函数可以将str翻转
}