用C语言程序编写 将一个无符号的十进数转换成十六进制数。

作者&投稿:卷瑗 (若有异议请与网页底部的电邮联系)
C语言一道程序填空题,将无符号十进制长整型数转换成十六进制数输出。~

老大 你的貌似有点问题哦 第一,d何处来,没有定义就用咯 第二,char b[17] 后面少了个引号

大概这样吧
#include

void main() {
char b[17] = {"0123456789ABCDEF"};
int c[8], i = 0, d, base = 16;
unsigned long n;
printf("Enter a long number:
");
scanf("%ld", &n);
do{
c[i] = n % base;
i++;
n = n / base;
} while(n != 0);
printf("Transmite new base:
");
for(--i; i >= 0; --i) {
d = c[i];
printf("%c", b[d]);
}
}


#includeint main(){ int n,i=0,cont=0; char n2[100]; scanf("%d",&n); while(n/2>0) { if(cont==4) { cont=0; n2[i++]=','; } n2[i++]=n%2+'0'; n=n/2; cont++; } n2[i++]=n+'0'; //-----------打印--------------------------- while(i-->0) printf("%c",n2[i]);}

递归太麻烦

16进制数是0-9加上a-e这16个字符来表示,用递归怎么做出统一性?

#include "stdio.h"

int main()

{

     int n; 

     int i=0,j;

     char ch[17]="0123456789ABCDEF";

     char output[100]={0}; 

     printf("请输入一个10进制数:");

     scanf("%d",&n);

     if(n<0)//输入负数,则转成正数

        n=-n;

     while(n)

     {

          output[i]=ch[n%16];

          n=n/16;

          i++;

     }

     printf("对应的16进制表示为:");

     for(j=0;j<i;j++) 

       printf("%c",output[i-1-j]); 

     printf("
");

}

结果:

4*16*16+13(D)*16+2==1234  正确




和布克赛尔蒙古自治县15691802187: c语言,编写函数,将一个无符号十进制数转成二进制并保存在形参数组中,在主函数输出它的二进制形式. -
尔差八宝: 保存在形参数组中,在主函数中输出其二进制形式? 楼主是不是把题目弄错了,保存到形参数组中?形参的改变不能使实参改变!也就是说,无论形参数组a[16]中存的是什么,在主函数中,都不能将其输出(因为调用完函数后,主函数中的数...

和布克赛尔蒙古自治县15691802187: 本人C语言初学者. 题:取出一个无符号的十进制整数中的所有奇数数字,按原来的顺序组成一个新的数. -
尔差八宝: 因为十多位的时候,数据溢出了,你把读入的数存在int上,以目前一般的32位平台,int最大都只支持4294967296,更别说16位了,你输入的超过这个,int类型就存不下了.你这种题目应该用字符串读取,然后对每一位进行处理. 读取一个字符串,然后从第一位开始判断,是奇数就取出来放到另一个字符串,最后处理完了就直接把另一个字符串打印出来就行了.

和布克赛尔蒙古自治县15691802187: 寻会C语言编程的人,高手解答
尔差八宝: #include"stdio.h" main() { int i,j,a[50],b; printf("请输入一个无符号十进制数:"); scanf("%d",&b); for(i=0;;i++) { a[i]=b%2; if(b==0) break; b/=2; } printf("该数对应的二进制数为:"); i--; for(j=i;j>=0;j--) printf("%d",a[j]); printf("\n"); }

和布克赛尔蒙古自治县15691802187: C语言程序设计题,输入一个大于10的无符号数,去掉它的首位并将其输出,但在TC下说第9,13行有错误,帮我 -
尔差八宝: 10,j=0; main() { int k;0) { i=i*10;10) { i=i/%d&quot.; printf("%d\n" } while(j>; } 少了分号,&i); k=i;stdio,j=j+1; scanf(&quot,j=j-1;,k).h> } k=k-i,i; while(i&gt.#include &lt

和布克赛尔蒙古自治县15691802187: 用C语言编程"输入一个十进制整数,打印输出对应的八进制数和十六进制数." -
尔差八宝: #include "Stdio.h" #include "Conio.h" main() { int a;scanf("%d",&a);printf("%x,%o",a,a);getch();} %x 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数

和布克赛尔蒙古自治县15691802187: C语言,用函数调用方式编写程序,将一个无符号数字串转换成其对应的数. -
尔差八宝: #include int atoi(char *s) { int i,j,value = 0; j=strlen(s); if(j==0) return 0; for(i=0; i { value = value * 10 + s[i]-'0';} return value; } void main() { char s[10]; int n; gets(s); n = atoi(s); printf("%d\n", n); }

和布克赛尔蒙古自治县15691802187: c语言输入一个无符号短整型数,然后按照用户输入的代号,分别输出十进制…… -
尔差八宝: 你的程序没有问题啊,只不过这句scanf("%d,%c",&x,&c);你输入的时候应该这样: 10,O15,X记得一定要有逗号哦,因为scanf中"%d,%c"有一个逗号

和布克赛尔蒙古自治县15691802187: 计算机原理题目:从键盘输入一个3位的十进制无符号整数,请分别用二进制、八进制和十六进制形式输出 -
尔差八宝: 是用C语言吗? #include <stdio.h>int main(int argc, char **argv) { int i; char s[20]; printf("请输入数字:\n"); scanf("%d",&i); itoa(i, s, 2); printf("二进制%s\n",s); printf("八进制%o\n",i); printf("十进制%d\n",i); printf("十六进制%X\n",i); }

和布克赛尔蒙古自治县15691802187: 编程:输入一个无符号整数,输出它的各位数之和 -
尔差八宝: #include<stdio.h> int main(){unsigned long a;int sum;while(scanf("%lu",&a)){printf("%lu的各位数之和是:",a);sum=0;while(a){sum+=(a%10);a/=10;}printf("%d\n",sum);}return 0; }

和布克赛尔蒙古自治县15691802187: 跪求用c语言编程将一个无符号数转化为任意10进制数
尔差八宝: main() { {unsigned x; long y; printf("\n input a number"); scanf("%u",x); y=(long)x; printf("%ld",y); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网