当前位置:首页 » 编程语言 » c语言输入几个十进制数字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输入几个十进制数字

发布时间: 2022-07-26 13:58:29

‘壹’ c语言:从键盘输入一个十进制正整数,求各位数字之和,咋写

代码文本:

#include "stdio.h"

char myf(int n){

return n>9 ? n%10+myf(n/10) : n;

}

int main(int argc,char *argv[]){

int x;

printf("Enter x(int x>0)... x=");

if(scanf("%d",&x)==1 && x>0)

printf("The result is %d ",myf(x));

else

printf("Input error, exit... ");

return 0;

}

‘贰’ C语言编程,输入十进制数输出十六进制和八进制

可以通过下面的公式解决

#include<stdio.h>

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

{int Array8[maxn];

int Array16[maxn];

int n, cot8 = 0;

scanf("%d", &n);

int m = n, cot16 = 0;

while(n) {Array8[cot8++] = n % index8;

n /= index8;}

while(m) {Array16[cot16++] = m % index16;

m /= index16;}

int i;

for(i = cot8 - 1; i >= 0; i--)

printf("%d", Array8[i]);

puts("");

for(i = cot16 - 1; i >= 0; i--)

(2)c语言输入几个十进制数字扩展阅读:

十进制转十六进制的具体方法:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

‘叁’ C语言:键盘输入一个十进制整数,输出其对应的二进制、三进制、四进制……十六进制数值。

#defineN"0123456789ABCDEF"
#include<stdio.h>
voidchange(intx,intn,char*p){
chartmp[100];//临时存放转换数
inti,total=0;
while(x){
tmp[total++]=N[x%n];
x/=n;
}
for(i=total-1;i>=0;i--){
p[total-1-i]=tmp[i];
}
if(total==0){
p[0]='0';
p[1]=0;
}
else
p[total-1-i]=0;
}
intmain()
{
chars[100];//用于存放转换的进制的数
inti,x;
printf("把一个数转换成234...16进制数 ");
scanf("%d",&x);
for(i=2;i<=16;i++){
change(x,i,s);
printf("转换成%d进制是:%s ",i,s);
}
}

‘肆’ 【c语言】输入一个十进制数,转换成对应的八进制数和十六进制数并输出

#include<stdio.h>
voiddec2n(intx,intn)
{inta[33],i;
for(i=0;x;x/=n)a[i++]=x%n;
for(i--;i>=0;i--)
if(a[i]<10)printf("%d",a[i]);
elseprintf("%c",a[i]+55);
printf(" ");
}
intmain()
{intx;
scanf("%d",&x);
printf("%d的八进制:",x);dec2n(x,8);
printf("%d的十六进制:",x);dec2n(x,16);
return0;
}

‘伍’ 用C语言编写输入2个十进制数,输出是一个压缩的BCD码(如输入64,输出 0110 0100 )

#include<stdio.h>
voidd2b(unsignedn,unsignedp)
{
if(p)
{
d2b(n/2,p-1);
printf("%d",n%2);
}
}
voidfunc(unsignedn)
{
if(n>9)
func(n/10);
d2b(n%10,4);
printf("");
}
intmain()
{
unsignedn;
scanf("%u",&n);
func(n);
return0;
}

‘陆’ 用C语言编写输入一个十进制数,输出相应的八进制数和十六进制数。例如:输入31,输出37和1F

#include <iostream> #include <iomanip> using namespace std; int main() { int a; cin>>dec>>a; cout<<oct<<a<<" "<<hex<<a; return 0; } 我用C-FREE5.0测试过的

‘柒’ C语言 输入一个十进制数,要求分别定义不同的函数将十进制转换成八进制和十六进制,并输出

你的问题还真不好说,大方向没问题,细节上得加强。为了尽可能简单,我用了全局变量,除非必要,滥用它是一个非常不好的习惯。
自己要学会不使用全局变量,怎么实现相同的功能。另外了解一下使用%o,%x,%a这几种格式时printf的输出结果
int a[100] = { 0 }; // 转换后的值
int flag = 0; // 符号

// 把x转换为base进制数
int convert(int x, int base)
{
int i = 0;
flag = 0;

if (x < 0)
{
flag = 1;
x = -x; // 确保是非负整数
}

if (base <= 0)
{
printf("进制输入错误\n");
return 0;
}

while (x)
{
a[i++] = x % base;
x /= base;
}
i--;

return i; // 返回位数
}

int eight(int x)
{
return convert(x, 8);
}

int sixteen(int x)
{
return convert(x, 16);
}

/* 非常简陋,只处理16进制以下的情形 */
void printf_num(int i)
{
printf("\n");

if (flag)
printf("-"); // 负号
while (i >= 0)
{
if (a[i] > 9 && a[i] < 16)
printf("%c", a[i] + 55); // 输出A-F
else
printf("%d", a[i]); // 输出0-9
i--;
}
}

int main() {

int x, i;

printf("请输入一个十进制整数:");
scanf("%d", &x);

i = eight(x);
printf_num(i);

i = sixteen(x);
printf_num(i);

return 0;
}

‘捌’ 用C语言编程,输入一个十进制正整数,输出其对应的十六进制整数。

#include<stdio.h>

int main()

{

int a,*p;

p=&a;

scanf("%d",p);

printf("%x ",*p);

return 0;

}

(8)c语言输入几个十进制数字扩展阅读:

十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。