首页  >  文章  >  后端开发  >  在C语言中的布尔数组谜题

在C语言中的布尔数组谜题

WBOY
WBOY转载
2023-08-29 15:05:051117浏览

在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] ]

以上是在C语言中的布尔数组谜题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:tutorialspoint.com。如有侵权,请联系admin@php.cn删除