#include<iostream> using namespace std; int a,b,x,y,r; void dayue() { if (a>b) { while (a%b != 0) { a=b; b=a-a%b; } } else cout <<b<<" "; void xiaob() { for (y=((a<b)?b:a); ; y++) { if (y%a ==0 && y%b==0) { cout << y; break; } } } int main() { cin >> a >> b; dayue(); xiaob(); return 0; }有哪些错误
时间: 2024-01-14 13:02:13 浏览: 51
这段代码存在以下几个错误:
1. 缺少头文件,应该加上 `#include<cmath>` 或者 `#include<cstdlib>`。
2. `dayue()` 函数中的 `else` 后缺少一个大括号,应该加上。
3. `dayue()` 函数中的 `else` 分支中只输出了 `b`,应该输出最大公约数。
4. `xiaob()` 函数中的循环条件不太对,应该改为 `for (y=((a<b)?a:b); y<=a*b; y++)`。
5. `xiaob()` 函数中应该加上一句 `cout << endl;`,以便与前面的输出分开。
6. 在主函数中调用 `dayue()` 和 `xiaob()` 函数时,应该加上一句 `cout << endl;`,以便与后面的输出分开。
7. 应该在整个程序的开头加上 `using namespace std;`,以免出现一些未定义的错误。
修改后的代码如下所示:
```c++
#include<iostream>
#include<cmath>
using namespace std;
int a,b,x,y,r;
void dayue() {
if (a>b) {
while (a%b != 0) {
r = a%b;
a = b;
b = r;
}
cout << b << endl;
} else {
while (b%a != 0) {
r = b%a;
b = a;
a = r;
}
cout << a << endl;
}
}
void xiaob() {
for (y=((a<b)?a:b); y<=a*b; y++) {
if (y%a ==0 && y%b==0) {
cout << y << endl;
break;
}
}
}
int main() {
cin >> a >> b;
dayue();
cout << endl;
xiaob();
cout << endl;
return 0;
}
```
阅读全文