一道不会的c语言程序设计
毕业设计
1
在主函数中输入两个自然数(如输入的是非自然数,则重新输入),调用子函数int fun (int, int), fun返回这两个数的最大公约数,在主函数中输出。
-
#include <stdio.h> int fun2(int n1,int n2) //群举法 { int s=(n1>n2)?n2:n1; int res=1; for(int i=1;i<=s;i++) if(n1%i==0 && n2%i==0) res=i; return res; } int fun(int n1,int n2) //辗转相除法 { int x=n2; int mod=n1%x; while(mod) { n1=x; x=mod; mod=n1%x; } return x; } int main() { int n1,n2; while(1) { printf("输入2个自然数:\n"); scanf("%d%d",&n1,&n2); if(n1>=0 && n2 >=0) break; printf("输入错误,请重新输入:\n"); } int res=fun(n1,n2); printf("%d\n",res); return 0; }
发表回复