| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 368 人关注过本帖
标题:求助,帮忙分析这个程序,我还没有开始系统学习
只看楼主 加入收藏
xzm0909
Rank: 1
来 自:湖北赤壁
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-13
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
求助,帮忙分析这个程序,我还没有开始系统学习
1.    以下是一段高级程序语言的代码,请简述这段代码的功能,并请指出这段代码有无改进之处。
#include <stdio.h>
#include <conio.h>
#include <string.h>

int judge(char ch)
{
    if((ch>='0')&&(ch<='9'))
        return ch-'0';
    if((ch>='a')&&(ch<='f'))
        return ch-'a'+10;
}
void main(void)
{
    clrscr();//clear screen
    char x16c [20];
    scanf("%s",x16c);//input string
    int i=0,j=0;
    while(x16c[i])
    {
        j=j*16+judge(x16c[i]);
        i=i+1;
    }
    printf("%d",j);//output string
    getch();
}
搜索更多相关主题的帖子: 学习 系统 
2010-03-13 17:30
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:3 
题目  是汇编里面的 物理地址=段地址*16+偏移地址 么?

[ 本帖最后由 hahayezhe 于 2010-3-13 18:11 编辑 ]
2010-03-13 18:09
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:3 
输入格式为十六进制的字符串,把它解析为十进制的数,然后打印出它的结果,如:
输入  1f
输出  31
即:1*16+15 = 31
函数judge还缺少一个返回值,当输入的字符不是在0~9,a~f中的一个时,返回的值不定,缺少处理错误字符的功能
2010-03-13 20:00
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:3 
楼上说的对,但还存在另外两个问题,可以改进:
1.数组越界问题
2.int数据的范围,不足以满足可能输入的十六进制大数的转换要求!

★★★★★为人民服务★★★★★
2010-03-13 20:09
快速回复:求助,帮忙分析这个程序,我还没有开始系统学习
数据加载中...
 
   



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

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