SOGO論壇

標題: 使用16進位副程式改寫switch [列印本頁]

作者: happy78323    時間: 2010-12-31 12:42:40     標題: 使用16進位副程式改寫switch

請參考以下程式,請用function及迴圈改寫此程式,
令此程式能輸入0~65535並將之轉成十六進制,
並執行以下輸入和輸出。

Ex1:input:0
       Output:0000
Ex2:input:65535
       Output:FFFF

Ps.不必做輸入錯誤判斷、使用純C


#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    int a, b;
    printf("請輸入一筆十進制之正整數(0~255之間):");
    scanf("%d", &a);
    if( a > 255 || a < 0)
    {
        printf("輸入範圍錯誤!!\n");
    }
    else
    {
        printf("十進制值%d轉成十六進制值為:", a);
        b = a / 16;
        switch(b)
        {
            case 10:
                 printf("A");
                 break;
            case 11:
                 printf("B");
                 break;
            case 12:
                 printf("C");
                 break;
            case 13:
                 printf("D");
                 break;
            case 14:
                 printf("E");
                 break;
            case 15:
                 printf("F");
                 break;
            default:
                 printf("%d", b);
        }
        b = a % 16;
        switch(b)
        {
            case 10:
                 printf("A");
                 break;
            case 11:
                 printf("B");
                 break;
            case 12:
                 printf("C");
                 break;
            case 13:
                 printf("D");
                 break;
            case 14:
                 printf("E");
                 break;
            case 15:
                 printf("F");
                 break;
            default:
                 printf("%d", b);
        }
        printf("\n");
    }
   
    system("pause");
    return 0;
}


<----我現在的狀態
請能手能多多幫忙
作者: 哇哇哈哈哈    時間: 2011-9-4 15:14:33

16進位的符號可以直接用陣列做就好
ex:
char hex[16]="0123456789ABCDEF";




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM