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

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

WBOY
发布: 2023-08-29 15:05:05
转载
1184 人浏览过

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

这是一个基于数组的谜题,需要你将包含两个元素的数组中的所有数字都更改为0。数组的一个元素是0,另一个元素可能是0也可能不是。

要解决这个谜题,程序需要找到非零元素并将其更改为0。

以下是解决布尔数组谜题所需的约束条件 

  • 允许的操作是补集,其他操作不允许。
  • 不允许使用循环和条件语句。
  • 也不允许直接赋值。

解决布尔数组谜题的程序

1

2

3

4

5

6

7

8

9

10

11

12

#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;

}

登录后复制

输出

1

2

3

4

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
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板