|
发表于 2023-10-22 11:25:18
|
显示全部楼层
你的代码中有一个小错误,你在while循环中使用了变量temp,但在进入循环之前并没有初始化它。这可能会导致未定义的行为,因为temp可能包含任何值。你应该在while循环之前初始化temp,或者在while循环中直接使用a%b作为条件。以下是修正后的代码:
- #include<iostream>
- using namespace std;
- int main()
- {
- int a,b,c;
- cin>>a>>b;
- c=a*b;
-
- if(a<b){
- int temp = a;
- a = b;
- b = temp;
- }
-
- int temp=a%b;
- while(temp!=0)
- {
- a=b;
- b=temp;
- temp=a%b;
- }
- cout<<"最大公约数为"<<b<<endl;
- cout<<"最小公倍数为"<<c/b<<endl;
- return 0;
- }
复制代码
在这个修正后的代码中,我首先检查a和b的大小,如果a小于b,我交换它们的值。然后我在while循环之前初始化temp,并在while循环中更新temp的值。最后,我在输出最大公约数时使用b,因为在while循环结束时,b将包含最大公约数。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案 |
|