C程序输入单4位数字数字输出使用数组下一个10个十六进制



在此处进行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;
}

使用scanfscanf("%x", &n)会给您一个HEX Integer。

另外,不需要将数字存储在数组中,使用printf("%x")打印每个数字都可以使用。

最新更新