二級C語言改錯題,題目:將輸入的十進制正整數(shù)轉(zhuǎn)換為十六進制數(shù),且用字符串存放該十六進制數(shù)#include <math.h>#include <string.h>#include <stdio.h>題目:將輸入的十進制正整數(shù)轉(zhuǎn)換為十六進制數(shù),且用字符串存放該十六進制數(shù)void main(){int x,b,i,j;char s[5];printf("Input a number(Dec): ");scanf("%d",&x);/**/ i=1; /**/ i=0while(x>0){b=x%16;if(b>9)s[i]=b-10+'A';else/**/ s[i]=b /**/;s[i]=b+’0’x=x/16;i++;}printf("\nHex number is: ");for(j=i-1;j>=0;j--)putchar(/**/ s[i] /**/); s[j]getch();}帶/**/的是有錯的地方右邊是正確答案,可是我不理解為什么是這樣,求大神幫忙解析下整個程序
1 回答
已采納

修裾欲溯空
TA貢獻34條經(jīng)驗 獲得超4個贊
第一個,數(shù)組的第一個元素從零開始;
第二個,如果之前單單復制b,此時b是一個數(shù)字,如果轉(zhuǎn)換成字符,就是按那個阿克塞斯碼來來轉(zhuǎn)換的,如果轉(zhuǎn)換過去就不是b這個數(shù)字內(nèi)容了,可能是標點啊什么的,為什么是加'0'呢?你想一下,'0'+1='1',以此類推,懂?
第三個,不用說了吧?for循環(huán)里是j在變,i在里面是不變的,所以了?。
懂了就采納一下
點擊展開后面1條
- 1 回答
- 0 關(guān)注
- 2216 瀏覽
添加回答
舉報
0/150
提交
取消