01/10/2018, 00:03
Giúp minh giải bài tập C với
Có vài chỗ trong đây minh không hiểu lắm, các bạn giải thích hộ mình.
#include <stdio.h>
#include <stdlib.h>
int uscln(int a, int b);
int bscnn(int a, int b);
void main()
{
int a = 6, b = 18;
printf("USCLN(%d,%d) = %d
", a, b, uscln(a, b));
printf("BSCNN(%d,%d) = %d
", a, b, bscnn(a, b));
getch();
}
// dung thuat toan Euclid
int uscln(int a, int b)
{
if(a == 0 && b == 0)
return -1;
else
return (b == 0)? a : uscln(b, a%b); // chỗ này minh không hiểu lắm
}
int bscnn(int a, int b)
{
if(a == 0 || b == 0)
return -1;
else
return (a*b/uscln(a, b));
}
// return (b == 0)? a : uscln(b, a%b); => mình không hiểu đoạn return này mọi người giải thích dùm mình nha
Bài liên quan
Cú pháp này là toán tử 3 ngôi (
tenary operator
) một cách thay thế, rút gọn lại câu lệnhif
vào các câu điều kiện đợn giản, ví dụ thay vì:thì chỉ cần đơn giản là:
P/s lần sau nhớ chèn code đúng cú pháp nha bạn mình sẽ sửa mẫu cho bạn.
à ra vậy. thx bạn nhé!
sao gọi toán tử 3 ngôi là viết tắt của cấu trúc if được
Trong trường hợp này nó có chức năng tương đương nhau thôi chứ đâu phải lúc nào if cũng có thể “viết tắt” thành toán tử 3 ngôi như vậy đâu
đây là tiếng anh hay toán
Đúng, 1 cái là
statements
if 1 cái làoperator
, mình đưa ra vậy để đơn giản thôi tuy nhiên, không phải là viết tắt mà là ngắn ngọn với những câu lệnh điều kiện đơn giản với những điều kiện phức tạp hơn thì dùng toán tử ba ngôi sẽ xấu và loằng ngoài code thank nhé.