เขียนโปรแกรมวนลูปเพื่อตรวจสอบค่าซ้ำใน Array ด้วยภาษา C พอกำหนดค่าเป็น 0 จะเป็นค่าซ้ำทั้งที่ยังไม่มีครับ

เขียนโปรแกรมวนลูปเพื่อตรวจสอบค่าซ้ำใน Array ด้วยภาษา C พอกำหนดค่าเป็น 0 ให้กับตัวแปร set_hr และ set_min ฟังก์ชั่นจะ return 1; ซึ่งแสดงว่าเป็นค่าซ้ำ ทั้งที่ยังไม่มีครับ แต่ถ้ากำหนดเป็นค่าอื่นก็สามารถตรวจสอบค่าซ้ำใน array ได้ตามปกติครับ

/* hr[],min[] คือ arrray ที่ส่งมา, hr_ck, min_ck คือค่าที่เอามาตรวจสอบว่ามีใน array หรือไม่ count คือขนาดของ array */

int check_time(int hr[], int hr_ck, int min[], int min_ck,int count){
int x;
for(x=0;x<4;x++){

if(x==count){
continue;

}else if((hr[x]== hr_ck) && (min[x]== min_ck)){ // ตรวจสอบค่าที่ส่งมากับค่าใน array

return 1; //ถ้าซ้ำ return 1;
break;
}
}
return 0; //ถ้าไม่ซ้ำ return 0;

}


โค้ดที่ผมเรียกช้ฟังก์ชั่นครับ พอกำหนดค่าเป็น 0 ให้กับตัวแปร set_hr และ set_min ฟังก์ชั่นจะ return 1; ตลอดเลยครับถึงจะยังไม่เคยกำหนดค่า 0

    if(check_time(hr, 0, min, 0, count)){



ไม่ทราบว่าต้องเขียนยังไงให้สามารถตรวจสอบค่าซ้ำใน array ได้ครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 4
แก้
for(x=0;x<4;x++){

เป็น
for(x=0;x<count;x++){

ตัด
if(x==count){
continue;

}else (แค่นี้เท่านั้น)
ออก
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่