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

时间:2017-03-05 07:10:40

标签: c arrays hex

这里的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;
}

1 个答案:

答案 0 :(得分:0)

使用scanf时出错,scanf("%x", &n)将为您提供十六进制整数。

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