这里的C编程初学者并在这里处理一个小编程任务,以帮助我理解十六进制数字在编程中的工作原理。阅读一本介绍十六进制和计算机使用的其他基本计数方法的书。
下面的小程序应该接受一个十六进制数字的输入,然后输出接下来的十位数字。
示例:
输入ABC1 输出ABC2,ABC3,ABC4,ABC5,ABC6,ABC7,ABC8,ABC9,ABCA和ABCB。
当前输出:
输入数字ABC1
0001 技术 0003 0004 0005 0006 0007 0008 0009 000A
显然,我目前缺乏理解是让我看不到代码中的错误,因为我是新手以十六进制计算。我尝试了几件事,但这是我到目前为止最接近的事情。
有人会这么善良,以帮助我找出我做错了什么,并建议需要纠正的是什么?所以我可以把它添加到我的笔记中。
非常感谢您的时间和帮助!
#include <stdio.h>
int main(void) {
int n, hexNum[4] = { 0 };
int i, j;
printf("Enter the number ");
scanf("%hhhhx", &n);
for (j = 0; j<10; j++)
{
hexNum[3]++;
for (i = 3; i>0; i--)
{
if (hexNum[i] == 16)
{
hexNum[i - 1]++;
hexNum[i] = 0;
}
}
printf("\n%x%x%x%x\n", hexNum[0], hexNum[1], hexNum[2], hexNum[3]);
}
return 0;
}
答案 0 :(得分:0)
使用scanf
时出错,scanf("%x", &n)
将为您提供十六进制整数。
此外,无需将数字存储在数组中,使用printf("%x")
打印每个数字都可以。