虽然都是更新,但是你输出的是ab的值,所以得更改ab才有效果
【以下回答由 GPT 生成】
这个问题的原因在于方式一更新分子和分母的时候,更新的是错误的变量。具体来说,方式一更新分子的时候使用的是a1,而方式二更新分子的时候使用的是a。所以方式一更新分子的操作没有生效,导致结果错误。
下面是具体的解决方案:
方式一的错误部分原代码是:
a1 = a1 / a;
b = b1 / a;
应该修改为:
a1 = a1 / a; // 更新a1为最简分子
b1 = b1 / a; // 更新b1为最简分母
修改后的代码如下:
#include<stdio.h>
int main()
{
int a, b;
scanf("%d/%d", &a, &b);
int a1 = a;
int b1 = b;
while (b != 0)
{
int c = a % b;
a = b;
b = c;
}
a1 = a1 / a; // 更新a1为最简分子
b1 = b1 / a; // 更新b1为最简分母
printf("%d/%d\n", a1, b1);
return 0;
}
这样修改后的方式一就能够正确运行了。
【相关推荐】