标题:求每一步的详解,没看懂代码 谢谢
只看楼主
妮图
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-10-30
结帖率:0
已结贴  问题点数:20 回复次数:2 
求每一步的详解,没看懂代码 谢谢
#include<iostream.h>
#include<stdio.h>
int n,cnt=0;
char num[10];
void dfs(int x){
if(x/16!=0)dfs(x/16);
if((x%16)<10)num[++cnt]=x%16+'0';
else num[++cnt]=x%16-10+'A';
}
int main(){
cin>>n;
dfs(n);
for(int i=1;i<=cnt;i++)
cout<<num[i];
return 0;
搜索更多相关主题的帖子: 详解 代码 include int num 
2017-10-30 10:52
zbzxpg
Rank: 2
等 级:论坛游民
威 望:3
帖 子:10
专家分:34
注 册:2006-4-24
得分:20 
#include<iostream.h>     //包含头文件
#include<stdio.h>        //包含头文件

int n,cnt=0;      //定义2个整形变量n,cnt,cnt初始化值为0
char num[10];     //定义一个字符变量数组num,num的大小为10个字符

void dfs(int x)    //定义一个无返回值的函数dfs,有一个整形参数x
{
    if(x/16!=0) dfs(x/16); //如果参数x除16不等于0
    if((x%16)<10)num[++cnt]=x%16+'0';
    else num[++cnt]=x%16-10+'A';
}

int main()         //主函数  
{
    cin>>n;        //从键盘输入一个数
    dfs(n);        //传给自定义的函数
    for(int i=1;i<=cnt;i++)  //开始循环
    cout<<num[i];            //输出字符变量数组的值
    return 0;
}

你的这个程序确实不好理解,有问题,虽然编译可以通过!不懂的话可联系我QQ358279267
2017-11-03 00:27
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
得分:0 
dfs(n)用于求整数n的十六进制数。
因为任何整数n的十六进制数都等于n除以16的商的十六进制数的后面加上余数的十六进制数。
于是 dfs(n)就先求dfs(n/16), 随后求最后一位十六进制数,依次放在数组num中。
2017-12-03 20:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481927-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018190 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved