01/10/2018, 10:30
Giúp tìm lỗi code ước chung lớn nhất
#include <stdio.h>
#include <stdlib.h>
int ucln(int a,int b)
{
while(a!=b)
{
if(a>b)
a-=b;
if(b>a)
b-=a;
}
return a;
}
int main()
{
int a,b,c;
printf("nhap a
");
scanf("%d",&a);
ptintf("nhap b
");
scanf("%d",&b);
c=ucln(a,b);
printf("uoc chung lon nhat la %d",c);
return 0;
}
Bài liên quan
Bạn format code lại cho dễ đọc bằng cách
```
```
Về code thì code tìm ước chung lớn nhất của bạn có một số vấn đề. Bạn có thể tham khảo ước là gì, sau đó tìm ước chung thế nào rồi mới tới tìm hiểu ước chung lớn nhất.
Thớt nên đọc lại mô tả thuật toán.
Nguyên lí của nó là:
vì vậy chỉ có 1 trong 2 trường hợp.
Trong vòng while dùng 2 lần if là sai phải dùng if else vì
lần 1: vô chay lệnh if thứ nhất a >b -> ok. Sau đó, trình biên dịch tiếp tục chạy xuống dòng if thứ 2 lúc này giả sử b >a rồi thì nó sẽ vô if tiếp để thực hiện -> sai thuật toán.
à em hiểu rồi cảm ơn anh ạ