C语言的Divide error问题!!

#include "stdio.h" void main() { int a,b,z1,z2,t,yu,m,n; printf("input two numbers:尀n");scanf("%d,%d",&a,&b); m=a;n=b;if (a<b){t=a;a=b;b=t; }yu=1;while(yu!=0){yu=a%b;a=b;b=yu;}z1=b;printf("zui da gong yue shu shi:%d 尀n",z1);z2=(a*b)/z1;printf("zui xiao gong bei shu shi:%d 尀n",z2); } 为什么这样写输入两个数后,会显示0Divide error而这样想不会的??????#include "stdio.h" void main() { int a,b,z1,z2,t,yu,m,n; printf("input two numbers:尀n");scanf("%d,%d",&a,&b); m=a;n=b;if (a<b){t=a;a=b;b=t; }yu=1;while((yu=a%b)!=0){a=b;b=yu;}z1=b;printf("zui da gong yue shu shi:%d 尀n",z1);z2=(m*n)/z1;printf("zui xiao gong bei shu shi:%d 尀n",z2); }#include "stdio.h" void main() { int m,n,r,a,b; scanf("%d%d",&m,&n); if (m>n){a=m;b=n;}else{a=n;b=m;}r=b;while((r=a%b)!=0){a=b;b=r;}printf("zui da gong yue shu shi:%d 尀n",r);printf("zui xiao gong bei shu shi:%d 尀n",m*n⼀r); } 最郁闷就是我这样写又会出现0Divide error了。
2026年09月27日 13:42
有1个网友回答
网友(1):

while(yu!=0)
{
yu=a%b;
a=b;
b=yu;
}

当yu=0时,已经将yu的值0赋值给b了,而z1=b;又将0赋值给了z1,所以后面的除法会有除0错误。