在此处进行C编程的初学者并在此处处理一项小型编程任务,以帮助我了解十六进制数字如何在编程中起作用。阅读一本书,介绍了计算机使用的十六进制和其他基础计数方法。
下面的小程序应该接受单个十六进制数字的输入,并在其之后输出接下来的十个数字。
示例:
输入ABC1输出ABC2,ABC3,ABC4,ABC5,ABC6,ABC7,ABC8,ABC9,ABCA和ABCB。
当前输出:
输入号码ABC1
000100020003000400050006000700080009000A
显然,我目前缺乏理解是让我无法看到代码中的错误,因为我是在十六进制中进行计数的新手。我已经尝试了几件事,但这是我到目前为止最接近的。
有人会这么友善,以帮助我确定自己在做错什么并建议需要纠正什么?这样我就可以将其添加到我的笔记中。
非常感谢您的时间和帮助!
#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%xn", hexNum[0], hexNum[1], hexNum[2], hexNum[3]);
}
return 0;
}
使用scanf
,scanf("%x", &n)
会给您一个HEX Integer。
另外,不需要将数字存储在数组中,使用printf("%x")
打印每个数字都可以使用。