程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> gcc vc++6.0-同樣代碼VC6.0結果正確,GCC編譯運行結果不正確,原因是什麼呢?謝謝!

gcc vc++6.0-同樣代碼VC6.0結果正確,GCC編譯運行結果不正確,原因是什麼呢?謝謝!

編輯:編程解疑
同樣代碼VC6.0結果正確,GCC編譯運行結果不正確,原因是什麼呢?謝謝!

#include

int main()
{
char deno[1000]={'\0'},num,i=0,remain=0;
scanf("%s %d",deno,&num); //獲取被除數、除數
if(!num) return (-1);

while(deno[i]!='\0')    
    deno[i++]-='0'; //轉換成數字
deno[i]='#';        //結束標志
i=0;
while(deno[i]!='#')
{
    deno[i]+=remain;            //低位+高位余數
    remain=10*(deno[i]%num);    //高位余數
    deno[i]=deno[i]/num+'0';    //商的ASCII碼    
    i++;
}
deno[i]='\0';   //串尾
remain/=10;     //最後余數

if(deno[0]=='0'&&deno[1]!='\0') //高位0不顯示
    printf("%s %d",&deno[1],remain);
else
    printf("%s %d",deno,remain);
return 0;

}

VC++6.0下運行結果:
圖片說明
圖片說明
圖片說明
GCC編譯後運行結果:
圖片說明

最佳回答:


(gdb) n
12 4

Breakpoint 1, main (argc=1, argv=0x7fffffffe288) at source.c:7
7 if(!num) return (-1);
(gdb) p deno
$1 = '\000'
(gdb) p deno[0]
$2 = 0 '\000'
(gdb)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved