改正这个函数 #include <stdio.h> int MaxCommonFactor(int a, int b); main() { int a, b, x=1; scanf("%d,%d",&a,&b); x = MaxCommonFactor(a, b); if (x < 0) printf("Input Error!\n"); else printf("%d\n", x); } int MaxCommonFactor(int a, int b) { int r=1; if (a <= 0 && b <= 0) return -1; do { r = a % b; b = r; a = b; } while (r != 0); return a; }
时间: 2023-06-26 16:05:06 浏览: 86
#include <stdio.h>
int MaxCommonFactor(int a, int b);
int main() {
int a, b, x=1;
scanf("%d,%d",&a,&b);
x = MaxCommonFactor(a, b);
if (x <= 0)
printf("Input Error!\n");
else
printf("%d\n", x);
return 0;
}
int MaxCommonFactor(int a, int b) {
int r=1;
if (a <= 0 || b <= 0) // 修改判断条件
return -1;
do {
r = a % b;
a = b; // 修正错误
b = r;
} while (r != 0);
return a;
}
主要的修改如下:
1.把 main 函数和 MaxCommonFactor 函数的声明分开
2.在 main 函数中加入 return 0;
3.修改了 if 语句中的判断条件
4.在 MaxCommonFactor 函数中修正了 a 和 b 的赋值顺序。
阅读全文