Challenge Accept เขียนภาษา C หาค่า Max ในบรรทัดเดียว

พอดีวันนั้นเล่น Facebook อยู่ดีๆแล้วเจอคำท้านี้เข้าครับ ผมเลยลองจัดสักหน่อย

นี่เป็น Function ที่ผมเขียนได้

int max(int *p){
return *(p+1)==0 ? *p : (*p > *(p+1) ? (((*(p+1) = *p) & 0) | max(++p)) : max(++p));
}

ส่วนอันนี้เป็นตัวอย่างวิธีใช้แบบเต็มๆ

#include <stdio.h>

int max(int *p){
	return *(p+1)==0 ? *p : (*p > *(p+1) ? (((*(p+1) = *p) & 0) | max(++p)) : max(++p));
}

int main(){
	int p[]={3,5,1,8,9,12,3,5,6,7,0};
	int i;
	//printf("%d\n",12 & 0);
	printf("%d",max(p));

	//for(i=0;i<10;i++) printf("%d\n",p[i]);
	return 0;
}

 

จาก Code นี้มีข้อจำกัด 2 เรื่อง

อธิบาย Code แบบเป็นส่วนๆ

Code เหี้ยมากๆ อ่านไม่รู้เรื่องแน่ความหน้า Note กรุก็ไม่มั่นใจว่าอ่านอีกทีจะเข้าใจไหมเนี่ย 55+

Exit mobile version