鱼C论坛

 找回密码
 立即注册
查看: 2633|回复: 2

呜呜呜,娃要被难哭了

[复制链接]
发表于 2021-5-29 22:29:12 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
6-3 输入十六进制自然数(循环版) (10 分)
请编写函数,以十六进制形式输入自然数,模仿 scanf 函数使用 %x 格式限定符的功能。

函数原型
int ScanHex(int *x);
说明:参数 x 为指示整型变量的指针。函数将以十进制形式输入自然数。若输入正确,则将自然数保存至 x 所指示的整型变量中,函数值为 1(真),否则函数值为 0(假),不保存自然数。

注:在十六进制数中用字母来表示大于等于 10 的数码:A ~ F 或 a ~ f 来表示 10 ~ 15。

允许输入前导空白字符(包括:空格、回车、换行、水平制表、垂直制表、换页等)。
自然数至少输入一位数字,否则视为错误。
遇到非法字符立即结束输入,并将该字符退回缓冲区,留待后面的输入函数读取。
要求:作为练习,请自己编写函数。不要调用 C 库函数中的 scanf 函数。

提示:利用前面练习中编写的 IsXDigit 函数判断十六进制数字。需要利用 C 库函数中的 ungetc 函数将最近读取的字符退回缓冲区,使后面的输入能读到它。

裁判程序
#include <stdio.h>
#include <ctype.h>

int IsXDigit(char x);
int ScanHex(int *x);

int main()
{
    int n = -1;
    char c;
    if (ScanHex(&n))
    {
        printf("%d\n", n);
    }
    else
    {
        puts("Error!");
    }
    c = getchar();
    printf("%c\n", c);
    return 0;
}

......

/* 你提交的代码将被嵌在这里 */
输入样例1
1AfK
输出样例1
431
K
输入样例2
x
输出样例2
Error!
x
Screenshot_2021-05-29-22-27-55-136_com.tencent.mtt.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-29 22:31:14 | 显示全部楼层
zay7065346 发表于 2021-5-29 22:29
我爱鱼C 路过帮顶 研究一下

最新技术 网络安全 编程开发 IT教程

这个账号好像是个程序?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-30 06:40:24 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2021-5-30 06:41 编辑
人造人 发表于 2021-5-29 22:31
这个账号好像是个程序?


应该不是小甲鱼马甲
提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 13:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表