重新排列一个数组,使得 arr = i,使用 C++

重新排列一个数组,使得 arr = i,使用 c++

我们有一个正整数类型的数组,假设为arr[],其大小可以任意给定,数组中的元素应该大于0但小于数组的大小。任务是将数组重新排列,使得如果arr[i]等于’i’,则’i’在数组中存在,否则将arr[i]元素设为-1,并打印最终结果。

让我们看一下这个问题的各种输入输出场景:

输入 − int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }

输出 − 重新排列后的数组为:0 1 2 3 4 5 -1 -1

解释 − 我们有一个大小为8的整数数组,数组中的所有元素都小于8。现在,我们将重新排列数组,即

立即学习“C++免费学习笔记(深入)”;

arr[0] = 0(present in an array)arr[1] = 1(present in an array)arr[2] = 2(present in an array)arr[3] = 3(present in an array)arr[4] = 4(present in an array)arr[5] = 5(present in an array)arr[6] = -1(NOT present in an array)arr[7] = -1(NOT present in an array)

输入− int arr[] = {1, 2, 6, 9, 10}

输出− 重新排列数组,使得arr[i] = i 是:-1 1 2 -1 -1

解释− 我们得到一个大小为 5 的整数数组,并且数组中的所有元素值小于大于 5。现在,我们将重新排列数组,即

arr[0] = -1(NOT present in an array)arr[1] = 1(present in an array)arr[2] = 2(present in an array)arr[3] = -1(NOT present in an array)arr[4] = -1(NOT present in an array)

下面程序中使用的方法如下:

输入一个整数类型的数组,并计算数组的大小。

在排序之前打印数组,并调用函数Rearranging(arr, size)

在函数Rearranging(arr, size)内部

声明一个整数类型变量,假设为ptr

从i到0开始循环,直到i小于size。在循环内部,从j到0开始另一个循环,直到j小于size。

在循环内部,检查如果arr[j] = i,则设置ptr = arr[j],arr[j] = arr[i],arr[i] = ptr并且跳出循环。

从i到size开始循环。在循环内部,检查如果arr[i]!= i,则将arr[i]设置为-1。

在重新排列数组值之后打印数组。

示例

#include using namespace std;void Rearranging(int arr[], int size){   int ptr;   for(int i = 0; i < size; i++){      for(int j = 0; j < size; j++){         if(arr[j] == i){            ptr = arr[j];            arr[j] = arr[i];            arr[i] = ptr;            break;         }      }   }   for(int i = 0; i < size; i++){      if(arr[i] != i){         arr[i] = -1;      }   }}int main(){   int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 };   int size = sizeof(arr) / sizeof(arr[0]);   //calling the function to rearrange an array such that arr[i] = i   Rearranging(arr, size);   //Printing the array   cout<<"Rearrangement of an array such that arr[i] = i is: ";   for(int i = 0; i < size; i++){      cout << arr[i] << " ";   }}

输出

如果我们运行上面的代码,它将生成以下输出

Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1

以上就是重新排列一个数组,使得 arr = i,使用 C++的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1445068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:09:13
下一篇 2025年12月15日 20:36:51

相关推荐

  • C++程序打印X星型图案

    展示不同形状的星星图案,如金字塔、正方形和菱形,是一种 基本编程和逻辑开发的常见部分。我们面临各种问题当我们研究编程中的循环语句时,涉及到星星和数字模式。本文将演示如何使用星号打印 X 或十字。 我们将看到相同的两种方法。第一个有点复杂,但下一个方法效率很高。 星形图案(使用两组空格) * * * …

    2025年12月17日
    000
  • 将以下内容翻译为中文:C++程序将字符串转换为浮点数

    C++ 中使用静态类型。为了编写程序,变量必须定义为特定类型。有时必须读取来自控制台或文件的输入。在这种情况下,程序被赋予字符串数据。需要特殊操作才能将它们转换为其他数据类型。本文将提供将字符串转换为浮点整数的 C++ 方法。可以使用几种不同的方法来实现此目的。分别探索它们中的每一个。 在 C++ …

    2025年12月17日
    000
  • C++程序将一个数字四舍五入到n位小数

    在任何语言中编写程序时,将数字表示为输出是一项有趣且重要的任务。对于整数类型(short、long或medium类型的数据),很容易将数字表示为输出。对于浮点数(float或double类型),有时我们需要将其四舍五入到特定的小数位数。例如,如果我们想将52.24568表示为三位小数,需要进行一些预…

    2025年12月17日
    000
  • 在C++中的合并排序树

    We are given an integer array, a set of segment start and end pointers and a key value and the problem statement here is to find all the values in the…

    2025年12月17日
    000
  • 将以下内容翻译为中文:使用递归在C程序中将二进制转换为格雷码

    二进制数是只有两位 0 和 1 的数字。 格雷码是一种特殊类型的二进制数,其属性是代码的两个连续数字 em> 的差异不能超过一位。格雷码的这一特性使其在 K-map、纠错、通信等方面更加有用。 这使得二进制到格雷码的转换成为必要。那么,让我们看一下将二进制转换为格雷码的算法使用递归。 示例 让…

    2025年12月17日
    000
  • 求第n个斐波那契数的C/C++程序?

    斐波那契数列是一个数列,其中下一项是前两项之和。斐波那契数列的前两项是 0 后跟 1。 在这个问题中,我们会发现斐波那契数列中的第 n 个数字。为此,我们将计算所有数字并打印 n 项。 Input:8Output:0 1 1 2 3 5 8 13 说明 0+1=11+1=21+2=32+3=5 使用…

    2025年12月17日
    000
  • 在C++中以升序交替方式重新排列奇数和偶数值

    我们得到一个包含正数和负数的整数类型数组,比方说,任意给定大小的 arr[] 。任务是以这样的方式重新排列数组:当数组中的最低元素为奇数时,数组中的元素将以奇数在前、偶数在前的方式重新排列第二种方式。当数组中的最低元素为偶数时,数组的元素将以偶数第一、奇数第二的方式重新排列,如果偶数/奇数元素的数量…

    2025年12月17日
    000
  • 如何使用 Newtonsoft.json 将 XML 转换为 Json 以及将 Json 转换回 XML?

    Json.NET 支持使用 XmlNodeConverter 将 JSON 转换为 XML,反之亦然。 元素、属性、文本、注释、字符数据、处理指令、命名空间和 XML 声明在转换时都会保留两者之间 SerializeXmlNode JsonConvert 有两个辅助方法用于在 JSON 和 XML …

    2025年12月17日
    000
  • 编写一个C程序以表格形式显示所有数据类型的范围

    我们在 c 编程中使用的不同数据类型包括整数、短整型、有符号和无符号字符等。 数据类型 数据类型指定值的集合和可以存储在变量中的数据类型。它们允许程序员选择适合应用程序需求的类型。 数据类型如下 – 主要数据类型派生数据类型 让我们了解主要数据类型。 主要数据类型 ‘ C&#…

    2025年12月17日
    000
  • 使用C++从字符串中删除给定的单词

    在本文中,我们将解决从给定字符串中删除给定单词的问题。例如 – Input : str = “remove a given word ”, word = “ remove ”Output : “ a given word &rd…

    2025年12月17日
    000
  • 将1转换为N的最小成本,可以通过乘以X或数字的右旋转来实现

    我们可以使用以下技术来找到乘以 X 或将其数字从 1 右旋转到 N 的最便宜方法。要监控初始最低成本,请创建一个成本变量。当从 N 到 1 时,检查每个阶段 N 是否被 X 整除。如果是,则将 N 除以 X 来更新它并继续该过程。如果 N 不能被 X 整除,则将 N 的数字向右循环以增加其值。在这种…

    2025年12月17日
    000
  • 二进制字符串的字典序排名

    在本文中,我们将探讨一个涉及二进制字符串和词典序的有趣问题。我们的任务是找到给定二进制字符串的词典序排名。我们将使用C++来演示我们的解决方案,C++是一种以其高效性和灵活性而闻名的流行编程语言。 理解词典顺序 词典顺序(也称为字母顺序或字典顺序)是指根据单词的组成字母的字母顺序排列单词。 问题陈述…

    2025年12月17日
    000
  • 通过递增子字符串的所有字符,使字符串回文所需的最小移动次数

    在计算机科学和编程领域中,发现解决问题的有效算法非常重要。一个有趣的问题是通过增加子字符串中的所有字符来识别将字符串转换为回文所需的最小操作次数。本文探讨了两种使用C++编程语言处理这个问题的方法。 语法 在深入探讨这些方法之前,让我们先定义一下我们将要使用的函数的语法 − int minMoves…

    2025年12月17日
    000
  • Python NetworkX – Tutte图

    Python NetworkX 是一个用于建模和分析复杂网络和图形的有效库。术语“Tutte Graph”是指 W. T. Tutte 发现的一类独特的图表。它需要使用该库的功能在 Python NetworkX 的上下文中实现和研究 Tutte Graphs。 Tutte 图具有特殊的特征,可用于…

    2025年12月17日
    000
  • 从两个已排序的数组中打印出不常见的元素

    给定两个已排序的数组,输出应显示它们的非公共元素 Given : array1[]= {1, 4, 6, 9, 12} array2[]= {2, 4, 7, 8, 9, 10}Output : 1 2 6 7 8 10 12 算法 STARTStep 1 -> declare two arr…

    2025年12月17日
    000
  • 最大化不能收集相邻行和列的硬币的价值

    动态规划是一种优化算法技术,通过将特定问题分解为一些简单的子问题来解决它们。通过这个过程,我们可以将完整搜索的质量、条件或事实结合起来,以获得精确且准确的贪心算法。但这种方法本身就是一个矛盾,因为它有很大的优点,但这也是它最大的缺点和限制。我们可以将一个问题划分为一些子问题,但我们不能再划分子问题。…

    2025年12月17日
    000
  • 在C++中,”Frugal Number”的翻译是”节俭数”

    在这个问题中,我们得到一个正整数 N。我们的任务是创建一个程序来检查给定的数字是否是节俭的数字。 FRUGAL NUMBER – 其位数严格大于给定数字的质因数分解中的位数的数字。 示例 – 625,数字 625 的质因数是 54。 625 的位数是 3。 立即学习“C++免…

    2025年12月17日
    000
  • C++程序:计算使所有礼物数量相等的操作次数

    假设我们有两个数组 A 和 B,每个数组的大小为 n。有n份礼物,我们想把它们送给一些孩子。第 i 份礼物有 A[i] 颗糖果和 B[i] 个橙子。在一次移动过程中,我们可以选择一些礼物并执行以下操作之一 – 从该礼物中取出一颗糖果(如果有); p> 从这份礼物中取出一颗橙子(如果…

    2025年12月17日
    000
  • 使用C++编写,将以下内容翻译为中文:在删除数组的一部分后,计算K个数组的最小公共和

    在使用C++数组时,我们有时需要计算多个数组中的最小公共和,同时删除它们后缀的一部分。在本文中,我们将使用C++探讨这个问题的有效解决方案。 语法 让我们首先分析我们选择的方法的语法,然后再继续在我们的代码中实现它 – int findMinimumCommonSum(vector&lt…

    2025年12月17日
    000
  • 在C语言中,memcmp和memicmp函数之间的区别是什么?

    Memcmp() and memicmp() compares first n bytes of two blocks of memory. memcmp() performs comparison as unsigned characters. memicmp() performs compari…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信