trước giờ em chỉ biết dùng if else để tìm giá trị lớn nhất trong ba số. ace cho em hỏi cách dùng biểu thức điều kiện để tìm max trong ba số nhập từ bàn phím như thế nào ạ hay ac lấy cho em vài ví dụ về chương trình sử dụng biểu thứ điều kiện được không ạ. thanks!
Tìm max trong 3 số nhập từ bàn phím (không dùng if else)
dùng ternary operator xem.
#define max2(a,b) ((a)>(b)?(a):(b))
printf("%d\n", max2(max2(a,b),c));
Có thể dùng while như là if cũng dc.
int max2(int a,int b){
while(a>b) return a;
return b;
}
3 Likes
thanks anh rất nhiều ạ!
1 Like
Mình không rành C lắm, thế này không biết có ổn không:
#include <stdio.h>
int max(int x, int y) {
(void)((x < y) && (x = y));
return x;
}
int main(void) {
printf("%d\n", max(max(1, 2), 3));
}
6 Likes
Tại sao inline
thì tốt hơn vậy Đạt?
Theo mình biết thì macro trong C không có type checking và có thể xảy ra side effect. Ví dụ:
max2(a++, b++)
PS: Mình không rành C thật, phần lớn là đọc hiểu, còn công việc hằng ngày thì không đụng đến C, chủ yếu thời gian rảnh thì tự “nghịch”
2 Likes
inline
tốc độ thực thi nhanh hơn
C là một ngôn ngữ được xây dựng dựa trên tinh thần Trust the programmer. Thế nên sử dụng C phải cẩn thận.
Cũng giống như câu lệnh này vậy
tmp=""
rm -rf /$tmp
2 Likes
Anh ơi, anh giải thích cho e đoạn code trên với. E chưa hiểu lắm
Chú ý rằng ==
mới là dấu bằng, còn =
vẫn là (toán tử) gán. Khi code nên cẩn thận chỗ này.
1 Like