簡體   English   中英

C程序輸入單個4位十六進制數字輸出下一個10十六進制數字使用數組

[英]C Program Input Single 4 digit Hex Number Output Next 10 Hex Numbers Using Array

這里是C編程的初學者,在這里處理一個小編程任務,以幫助我理解十六進制數字在編程中的工作原理。 閱讀一本書,介紹十六進制和計算機使用的其他基本計數方法。

下面的小程序應該接受單個十六進制數的輸入並輸出后面的十個數字。

例:

輸入ABC1輸出ABC2,ABC3,ABC4,ABC5,ABC6,ABC7,ABC8,ABC9,ABCA和ABCB。

當前輸出:

輸入數字ABC1

0001 0002 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;
}

使用scanf出錯, scanf("%x", &n)會給你一個十六進制整數。

此外,不需要將數字存儲在數組中,使用printf("%x")打印它們中的每一個都可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM