Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ปริศนา Boolean Array ใน C?


นี่คือปริศนาแบบอิงอาร์เรย์ที่ต้องการให้คุณเปลี่ยนตัวเลขทั้งหมดของอาร์เรย์ที่มีสององค์ประกอบเป็น 0 องค์ประกอบของอาร์เรย์คือ 0 และอีกส่วนหนึ่งอาจเป็น 0 หรือไม่ก็ได้

ในการไขปริศนานี้ โปรแกรมต้องค้นหาองค์ประกอบที่ไม่ใช่ศูนย์และเปลี่ยนเป็น 0

ข้อจำกัดต่อไปนี้ที่จำเป็นสำหรับการไขปริศนาบูลีนอาเรย์

  • การดำเนินการที่อนุญาตนั้นเป็นส่วนเสริม ไม่อนุญาตให้ดำเนินการอื่นๆ
  • ไม่อนุญาตให้ใช้คำสั่งวนซ้ำและแบบมีเงื่อนไข
  • ไม่อนุญาตให้มอบหมายโดยตรง

โปรแกรมแก้ปริศนาบูลีนอาร์เรย์

#include <iostream>
using namespace std;
void makeZero(int a[2]) {
   a[ a[1] ] = a[ !a[1] ];
}
int main() {
   int a[] = {1, 0};
   makeZero(a);
   cout<<"arr[0] = "<<a[0]<<endl;
   cout<<"arr[1] = "<<a[1];
   return 0;
}

ผลลัพธ์

arr[0] = 0
arr[1] = 0
You can use other ways too. Like this one which does not require the negation operation.
a[ a[1] ] = a[ a[0] ]