大神帮忙解释一下啊!输入一个十进制正整数,将其转换成16进制并输出。

【程序说明】输入一个十进制正整数,将其转换成16进制并输出。【程序代码】#include<stdio.h>intmain(){inti,p,n;intnumber[40]... 【程序说明】
输入一个十进制正整数,将其转换成16进制并输出。
【程序代码】
#include <stdio.h>
int main()
{
int i,p,n;
int number[40];
scanf("%d",&n)
p=-1;
while(_____(27)_______)
{
number[++p]=______(28)_______;
______(29)_______;
}
for(i=p;i>=0;i--)
{
if(_______(30)________)
printf("%d",number[i]);
else
printf("%c",________(31)_________);
}
printf("\n");
return 0;
}

【选项】
(27)
[A] n=0 [B] n!=0
[C] n==0 [D] n>=0
(28)
[A] n%16 [B]n/16
[C] n-number[p]*16 [D]n-number[p-1]*16
(29)
[A] n=n-number[p] [B] n=n-number[p-1]
[C] n/=16 [D] n%=16
(30)
[A] number[i]!=0 [B] number[i]<10
[C] number[i]>0 [D] number[i]>=10
(31)
[A] number[i] [B] 'A'+number[i]
[C] number[i]-10 [D] 'A'+number[i]-10
展开
 我来答
匿名用户
推荐于2017-12-16
展开全部
    int i,p,n;
    int number[40];
    scanf("%d",&n);  //原题这儿少了一个分号
    p=-1;
    while(n!=0) //(27)选D  //采用的转换方法叫:除模取余倒着读,和短除法分解质因数类似
    {
        number[++p]=n%16; //(28)选A  //这儿保存的是除以16后的余数
        n/=16;  //(29)选C   使n=原数除以16的商
    }
    for(i=p;i>=0;i--)
    {
     if(number[i]<10)    //(30)选B  小于10的直接输出
         printf("%d",number[i]);
     else
         printf("%c",'A'+number[i]-10);  //(31)选D  余数>=10且<16的要变成'A'-'F'
    }
    printf("\n");
    return 0;
析闲平湛蓝
2019-05-11 · TA获得超过3967个赞
知道大有可为答主
回答量:3117
采纳率:26%
帮助的人:452万
展开全部
123456789101112131415161718 int i,p,n; int number[40]; scanf("%d",&n); //原题这儿少了一个分号 p=-1; while(n!=0) //(27)选D //采用的转换方法叫:除模取余倒着读,和短除法分解质因数类似 { number[++p]=n%16; //(28)选A //这儿保存的是除以16后的余数 n/=16; //(29)选C 使n=原数除以16的商 } for(i=p;i>=0;i--) { if(number[i]<10) //(30)选B 小于10的直接输出 printf("%d",number[i]); else printf("%c",'A'+number[i]-10); //(31)选D 余数>=10且<16的要变成'A'-'F' } printf("\n"); return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式