当前位置: 首页 > 编程笔记 >

C语言程序中的布尔数组难题?

尹超
2023-03-14
本文向大家介绍C语言程序中的布尔数组难题?,包括了C语言程序中的布尔数组难题?的使用技巧和注意事项,需要的朋友参考一下

在这里,我们将看到一个布尔数组难题。一个数组具有两个元素0和1。我们必须将所有元素都设为0。我们应该考虑一些规范-

  • 在数组中,一个元素为0,这是固定的,但我们不知道该元素的位置是什么

  • 另一个元素可以是0或1

  • 此处仅允许补码运算,不能执行其他运算

  • 我们不能使用分支和循环语句

  • 我们不能将0直接分配给数组元素

我们可以用不同的方式解决这个问题。其中有三个-

方法1 -

示例

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

输出结果

arr[0] = 0
arr[1] = 0

方法2 -

示例

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

输出结果

arr[0] = 0
arr[1] = 0

方法3 -

示例

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

输出结果

arr[0] = 0
arr[1] = 0
 类似资料:
  • 本文向大家介绍Objective-C语言排序数组,包括了Objective-C语言排序数组的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 数组是编程语言中用来存储元素的集合。在 C 语言中,集合是储存相同类型元素的集合。并且可以通过一个名称来来访。 -------------------------------------------- | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …… | N-1 | -------------------------------------------- 第一个元素

  • 数组是一种内存分配的形式,数组是定义了一个连续的空间,与指针类似。 数组定义方式 类型 数组名[数组大小];//类型为每个空间的大小,我们通过数组名和下标访问数据,数组名指向存储数据的首地址,但是我们不可以改变数组名指向的地址。数组大小只有在定义的时候生效,定义之后不可以被改变。 int a[100]; //申请了一个名叫a的数组,它包含了100个整型。 数组的访问 我们可以通过数组的下标访问数

  • C 语言中的多维数组与我们在数学中学习到的多维数组是一致的。如果你还不知道什么是多维数组也没有关系。多维数组可以看成是之前学习过的数组的扩展。它能让你完成一些仅仅依靠一维数组没有办法完成的事情。让很多事情完成的更为简单。 1. 多维数组的声明 多维数组可以看作是一维数组的扩展。所以,它的声明就是在之前学习的数组,也叫一维数组,之后继续添加大括号,如果添加一组大括号,那么称之为二维数组,以此类推,就

  • 本文向大家介绍C语言解数独程序的源码,包括了C语言解数独程序的源码的使用技巧和注意事项,需要的朋友参考一下 用C语言写的解数独的程序。在linux下测试成功运行。 效果如图: 这是带解的数独,需要填写的部分用数字0代替。 这是程序运行后的效果图。看看,数独已经搞定啦。 程序源码如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。