#include <stdio.h> int main() { int a,b; printf("请输入这两个数:"); scanf("%d %d",&a,&b); int x=gonyueshu(a,b); printf("%d",x); return 0; } int gonyueshu(int a,int b) { for(int i=a;i>0;i--) { if(a%i==0) { for(int n=b;n>0;n--) { if(b%n==0) { if (i==n) { return i; } } } } } }
时间: 2024-01-08 11:03:18 浏览: 26
你的代码实现了求最大公约数的功能,但是需要注意一些细节问题。首先,需要在 main 函数前面声明 gonyueshu 函数,否则编译器会报错。其次,需要在 gonyueshu 函数的最后加上一个默认返回值,比如 1,以避免函数没有返回值导致的编译器报错。最后,为了增强代码的可读性,建议在函数内部添加必要的注释和空格。完整代码如下:
```
#include <stdio.h>
// 声明函数
int gonyueshu(int a, int b);
int main() {
int a, b;
printf("请输入这两个数:");
scanf("%d %d", &a, &b);
int x = gonyueshu(a, b);
printf("%d", x);
return 0;
}
// 实现函数
int gonyueshu(int a, int b) {
for (int i = a; i > 0; i--) {
if (a % i == 0) {
for (int n = b; n > 0; n--) {
if (b % n == 0) {
if (i == n) {
return i;
}
}
}
}
}
return 1;
}
```