为什么单独输出可以,合起来不能输出

#include"stdio.h"
#include"math.h"
int main(){ int temp2,i=0; int m,n; int temp1,a,b;
printf("请输入两个整数:");
scanf("%d,%d",&m,&n);
if(m<n) { temp1=m; m=n; n=temp1; }
if(n==0) a=m; else; { while(1) { b=m%n; m=n; n=b; a=m; if(n==0) break; } } if(m<n) { temp2=n; n=m; m=temp2; } for(i=m;i>0;i++) { if(i%m==0 && i%n==0) break; } printf("%d\t%d\n",m,n); printf("%d\t%d\n",i,a); }

你这代码是要求最大公约数吗?
while循环中,m和n的值已经改变了,不是原来输入的值了,而且n等于0才会结束while循环,while循环后面的for循环看着也是要求公约数的,但是m和n已经在上面的while循环中被改变了,n也变成0了,无法达到目的了,而且,求公约数,应该是 if (m% i == 0 && n % i == 0)

你想实现什么功能呢?

else 那里错了,还有,你的输出语句\t错了,在第二个百分号那里就可以了

if(n==0) a=m; else;
这个else多了个;吧