while 和do while条件的判断
while(p)p的值如果不知道是无法进入循环的,如果想要开始循环,p事先置1
do while(p) 即使实现不知道p的值是多少,仍然可以这样用,因为要执行一次循环,此时已经把p的值更新上去了。
接下来看代码对比:
- while(p)
#include "stdio.h"
int main(){
int m,n,min,max,p,q;
scanf("%d %d",&m,&n);
min=(m<n?m:n);
max=(m>n?m:n);
p=1;
while(p){
p=max%min;
q=min;
min=(p<q?p:q);
max=(p>q?p:q);
}
printf("%d %d",q,(m*n)/q);
return 0;
}
2.do while(p)
#include "stdio.h"
int main(){
int m,n,min,max,p,q;
scanf("%d %d",&m,&n);
min=(m<n?m:n);
max=(m>n?m:n);
do{
p=max%min;
q=min;
min=(p<q?p:q);
max=(p>q?p:q);
}while(p);
printf("%d %d",q,(m*n)/q);
return 0;
}
题目:输入两个正整数m和n,求其最大公约数和最小公倍数