为什么我的输出结果一直是原值a啊😭


/*
a   b   t  假如输入1218 
12  18  12  a%b==12 即 t=12
18  12  6   a=b b=t 再a%b==6
12  6   0   同理
6   0       b=0 结束循环 得到最大公约数
*/
#include<stdio.h> 
int main()
{
    int a,b;
    scanf("%d,%d",&a,&b);

    while(b!=0)
    {
        t=a%b;
        a=b;
        b=t;
    }
    
    printf("最大公约数为%d\n",a);
    return 0;
}

img

你的 t 变量呢 ,没有定义啊,
另外 输入 要原样输入 , 中间要有个英文逗号

img

您在代码中定义的变量 t 并未使用,并且其与 a 的值在每次循环中都不同,因此您的程序并没有正确地计算最大公约数。

#include <stdio.h>  
  
int main() {  
    int a, b;  
    scanf("%d,%d", &a, &b);  
      
    while (b != 0) {  
        a %= b;  
        b = a;  
    }  
      
    printf("最大公约数为%d\n", a);  
    return 0;  
}

参数t没做定义哦!编译应该会报错哦!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^