二級(jí)C語(yǔ)言改錯(cuò)題,題目:將輸入的十進(jìn)制正整數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù),且用字符串存放該十六進(jìn)制數(shù)#include <math.h>#include <string.h>#include <stdio.h>題目:將輸入的十進(jìn)制正整數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù),且用字符串存放該十六進(jìn)制數(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();}帶/**/的是有錯(cuò)的地方右邊是正確答案,可是我不理解為什么是這樣,求大神幫忙解析下整個(gè)程序
1 回答
已采納

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