查看單個文章
舊 2014-10-29, 10:19 PM   #4 (permalink)
getter
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

看的我眼睛好痛 ... 有些乍看之下莫名其妙的地方 ...

可以的話建議上註解 ...

PHP 語法:
#include<stdio.h>  
#include<stdlib.h>  

 
int main(void){  
   
int num,i,j,x;  
   
char s[999]; 
   
//char str[999]; 這是多餘的 
// while(scanf("%d",&num)!=EOF) 這行 scanf 沒有輸入提示,會搞到後面很難除錯  
 
while(1)
   {  
    
printf("\nInput DEC Number: "); // 增加的輸入提示 
    
scanf("%d",&num)!=EOF
    
j=0// 把最下面的 j=0; 移上來比較容易了解作用: s 字串陣列 index 歸零    
    
while (num!=0)
      { 
       
i=num%16// 取餘數 
       
switch(i)
         {  
          case 
10:  
            
s[j]='A'
          break;  
          
          case 
11:  
           
s[j]='B';  
          break;  
          
          case 
12:  
            
s[j]='C';  
          break;  
          
          case 
13:  
            
s[j]='D'
          break;  
          
          case 
14:  
            
s[j]='E'
          break;    
          
          case 
15:  
            
s[j]='F'
          break;  
          
          default:  
              
// s[j]=i; 資料格式錯誤,必須要把數值格式轉換成 "文字格式"。 
               
s[j]=48+i// 這一行是以 ASCII 編碼直接做換算。 
         
}  
       
num=num/16//取商數,下一回的被除數  
       
j+=1
      } 
       
s[j]='\0'// 以據 C/C++ 語言的字串特性,給予的字串結尾符號。 
      
      // j-=1; 可以直接並到 接下來的 for loop 中。 

   
printf("Otput HEX Number:["); // 增加的輸出顯示   
   //for (i=j;i>=0;i--)
   //   { printf("%s",s[i]); } 這是錯的,要顯示出字元,要用 %c 不然會錯誤,編譯後出現錯誤當機應該也是這裡   
   
   
for (i=j-1;i>=0;i--)
      { 
printf("%c",s[i]); } 

   
printf("]");     // 增加的輸出顯示
   // j=0; 這行正確的作法,應該是要移到在上面的地方,需要明確的讓 s[j] 一開始規零的地方。 
   
printf("\n"); 
   } 

 return 
0;   

__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
向 getter 送花的會員:
a471 (2014-11-01)
感謝您發表一篇好文章