[問題] 兩分數相加並約到最簡分數

看板C_and_CPP作者 (瓶子)時間14年前 (2010/04/10 00:51), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 程式跑到一半,自動關閉 希望得到的正確結果: 顯示出所輸入的兩個分數,相加約分後得到最後的答案 原始程式碼 #include <stdio.h> #include <stdlib.h> int main() { int a=0,b=0,c=0,d=0,x,y,u,v,temp; printf("此程式為兩分數相加運算\n"); printf("\n請輸入第一個分數的分母:"); scanf("%d",&a); printf("\n請輸入第一個分數的分子:"); scanf("%d",&b); printf("\n請輸入第二個分數的分母:"); scanf("%d",&c); printf("\n請輸入第二個分數的分子:"); scanf("%d",&d); x=a*c; y=b*c+a*d; if (x>y) { u=x; v=y; } else { u=y; v=x; } while (u!=0) { temp=u%v; u=v; v=temp; } x=x/u; y=y/u; printf("\n%2d/%d+%2d/%d=%2d/%d",b,a,d,c,y,x); system("PAUSE"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.69.228

04/10 01:03, , 1F
while(u!=0)跳出這個迴圈的時候,u的值是0,後面再做
04/10 01:03, 1F

04/10 01:04, , 2F
x/u和y/u,會因為除數是0而中止程式
04/10 01:04, 2F

04/10 01:04, , 3F
有考慮到除數為0的case嗎?? Debug Run的Error應該也會有
04/10 01:04, 3F

04/10 01:04, , 4F
提示吧??
04/10 01:04, 4F

04/10 01:05, , 5F
哇靠~~轉眼間已經被c大蓋兩樓了....XD
04/10 01:05, 5F

04/10 01:13, , 6F
唔...好像在while迴圈裡面就有除0的問題了
04/10 01:13, 6F

04/10 01:39, , 7F
感謝大大~~問題已解決了!
04/10 01:39, 7F
文章代碼(AID): #1BlrijIT (C_and_CPP)