既約分数の表示プログラム
(1)キーボードから,分子,分母に相当する整数2つを入力し,その既約分数を表示せよ。
(2)分母が1の時には,分子のみを表示する。
(3)分子と分母の符号が異なるときにのみ,-符号を表示する。
(4)分母がゼロの入力エラーに対しては、再入力するように促す。
(5)分子と分母の最大公約数も求めて表示する。
(6)また、正しく計算できる最大規約分数を示せ。
#include <stdio.h>
int main(void)
{
int a,b,i=1,x,y,z;
printf("分子=");/*分子の入力*/
scanf("%d",&a);
printf("分母=");/*分母の入力*/
scanf("%d",&b);
if(b==0)
{
printf("分母が0です。入力が誤っています。\n");
return 0;
}
if(b==1)
{
printf("既約分数は %d\n",a);
return 0;
}
while((i<=a)&&(i<=b))
{
if((a%i==0)&&(b%i==0))
{
x=i;i=i+1; /*xを上書きしていく*/
}
else
{
i=i+1;
}
}
printf("分子と分母の最大公約数=%d より\n",x);
y=a/x;
z=b/x;
printf("既約分数は %d/%d\n",y,z);
return 0;
}
大学の課題で出されたものです。(1)(2)(4)(5)はできたのですが、(3)と(6)の部分のやり方がいまいちよくわからなかったので質問しました。
どなたかご教授お願いできないでしょうか・・・。
お礼