C++编程:对数组A中的N(0<N<100)个整数从小到大进行连续编号 2C

要求不能改变数组A中元素的顺序,且相同的整数要具有相同编号。
例如:数组A=(5,3,4,7,3,5,6)
则输出为:(3,1,2,5,1,3,4)

拜托拜托,求大神帮忙,注意是C++不是C语言,

0

5个回答

1

这道简单题,主要考的问题就是排序。
然后拓展,对排序之后的顺序加编号(用map就可以记录)。
最后就是给原数组添加编号了。
当然,这里需要三个N大小的数组,
第一个,存储原数组。
第二个,存储排序后的数组。
第三个,存储最后的编号。

小提示:注意有重复数字情况。

1
0

我觉的可以用打点法,申请同样大小的数组,完后把编号填入有数字的对应新申请的数组中,内容加加,就可以了

0

我觉的可以用打点法,申请同样大小的数组,完后把编号填入有数字的对应新申请的数组中,内容加加,就可以了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数组排序(输入N个整数从小到大进行编号,不能改变数组顺序)
题目: 从数组A中的N(0&amp;lt;N&amp;lt;100)个整数中从小到大进行连续编号,输出各个元素的编号。要求不能改变数组A中元素的顺序,且相同的数据要具有相同的编号。例如A=(5,3,4,7,3,5,6) 则输出(3,1,2,5,1,3,4)。 程序思路:由于不能改变输入数据顺序,定义一个num[2][100]的二维数组存储相应的数据。第一行存储输入的数据,第二行存储对应的排序(初始设置为0)。...
对已知数组进行编号
对已知数组进行编号
对数组中N个整数由小到大排序的几种方法
这里提供两种方法:选择法和冒泡法,依次实现对数组中整数的排序问题。一:所谓选择法就是先将 N 个数中最小的数与 a[0] 对换;再将 a[1] 到 a[N - 1] 中最小的数与 a[1] 对换 ...... 每比较一轮,找出一个未进排序的数中的最小值。共比较 N - 1 轮。根据此思路编写程序如下:#include #include void swap(int *x,int *y) { *x
对数组A中的N(0&lt;N&lt;100)个…
对数组A中的N(0        A=(5,3,4,7,3,5,6)     则输出应为:(3,1,2,5,1,3,4) 即数组A中整数5依从小到大的序号为3,整数3依从小到大的序号为1,… // #include "stdafx.h" #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) {  int a[100
C语言:快速排序问题(输入一个数字n,再输入n个数字,对其进行从小到大排序)
#include&amp;amp;lt;stdio.h&amp;amp;gt;//快速排序 int a[101]; void fa(int left,int right) { int temp=0,i=0,j=0,t=0; if(left&amp;amp;gt;right) { return ; } temp=a[left]; i=left; j=right; while(i!=j) { while(a[j]&amp;amp;gt;=temp&amp;amp;amp;&amp
PTA 数组循环左移 (20 分) 本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的
    数组循环左移 (20 分) 本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(&amp;gt;0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a​0​​a​1​​⋯a​n−1​​)变换为(a​m​​⋯a​n−1​​a​0​​a​1​​⋯a​m−1​​)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数...
输入n个0~1000之间的整数,将他们从大到小排序。
提醒一下如果需要对数据范围在0~1000之间的整数进行排序,我们需要1001个桶,来表示0~1000之间每一个数出现的次数,这一点一定要注意。另外此处的每一个桶的作用其实就是“标记”每个数出现的次数,因此我喜欢将之前的数组a换个更贴切的名字book(book这个单词有记录、标记的意思),代码实现如下。 #include &amp;lt;stdio.h&amp;gt; 02 int main() 03 { 0...
【算法】插入排序(从小到大) 排序范围(0~n-1)n为数组元素个数
我们再来谈谈另外一个基本排序算法,插入排序。   插入排序的思想也是十分简单。我们在排序范围(begin,end)中,选择数组下标为end的元素作为基准值,从它的前一个元素开始,向前遍历。在遍历过程中,把遍历到的值与基准值进行对比,如果比基准值大,就把这个值后移,遍历下标i前移。直到找到一个元素,比基准值小,或者遍历到数组头后结束,得到一个下标值,即插入位置。最后将基准值插入到这个下标值中。
C语言笔试题(4)——二分法查找
#include int bfind(int *a, int len, int num) {     int min = 0;     int max = len - 1;     int mid;     while(min <= max)     {         mid = (min + max) / 2;                  if (a[mid] > num)
【算法】冒泡排序(从小到大) 排序范围(0~n-1)n为数组元素个数
今天要谈的是基本排序算法中的冒泡排序。除了冒泡排序,基本排序算法还包括:选择排序、插入排序。   插入排序算法的思想也是很简单的,它把排序过程模拟成了从水底冒气泡的过程。一趟排序过程结束后,最小(最轻)的元素就已经“浮”到水面上了。接下来就是不断缩小排序范围,把每个排序范围中最小的元素交换到数组头。   接下来就来分析算法,我们使用的数据是1 3 2 8 0 6 共6个元素      我们
N个整数从小到大排列,输入一个新数插入其中,使N+1个整数仍然有序。
#include&amp;lt;iostream&amp;gt; using namespace std; int main() { int a[11]={10,20,30,40,50,60,70,80,90,100}; int i,j,n; cout&amp;lt;&amp;lt;&quot;原顺序为:&quot;&amp;lt;&amp;lt;endl; for(i=0;i&amp;lt;10;i++) cout&amp;lt;&amp;lt;a[i]&amp;lt;&amp;lt...
整数数组的冒泡排序(从小到大)
前几天忙着敲程序,今天来冒泡啦!挺经典的一个程序,冒泡法都是这个套路喽! #include int main() {  int i=0;  int j=0;  int t;  int a[10];  printf("请输入最初始的数组:\n");  for(i=0;i  {   scanf("%d",&a[i]);  }  printf("\n");  printf(
【算法】选择排序(从小到大) 排序范围(0~n-1) n为数组元素个数
今天我们就来谈谈排序算法中的简单排序算法之----选择排序
1119: 一维数组排序
1119: 一维数组排序 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 5841  Solved: 3138 SubmitStatusWeb Board Description 对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下: int sort(int a[], int n);
【算法】快速排序算法(递归实现 从小到大排列) 排序范围(0~n-1) n为数组元素个数
  今天就来谈谈快速排序,我们也不详谈快速排序的时间复杂度,我们重点来分析一下快速排序的思想。   快速排序的思想十分简单,假设给定一个无序的数组,我们要从小到大排列,我们只需要完成以下几步    1、选取这个数组中的某一个元素为基准值,它的下标为基准点,这样数组就被分成了左右两个部分    2、将这个基准点左边的所有元素排好序(比这个基准值小)    3、将这个基准点右边的所有元素排好序...
找数问题
现在给你n个数,这n个数从小到大递增,然后问你某个数是不是在这n个数里面 输入 第一行一个n 然后是n个从小到大排列的数 然后输入一个m表示接下来有m个询问,接下来m行每行一个数,问你这个数在不在刚才给的那些数里面 1 输出 对于每个询问,如果询问的数在所给的数里面,就输出yes,否则输出no Input 5 1 2 5 6 10 3 2 5 7 Output ye
java sort --- 输入n和n个整数,输出排序后的数据(由小到大排列)。(其中n值不超过100)
若为降序排列,就倒着输出 import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int num = input.nextInt(); ...
C++:输入n个数,通过气泡法从小到大排列顺序(掌握不熟,还请谅解)
#include using namespace std; int main() { int n; cin>>n; int a[n]; int i,j,t; for(i=0; i<n; i++) { cin>>a[i]; } for(j=0; j<n; j++) { for(i=0; i<n-j-1 ; i++) { if(a[i]>a[i+1]) { t=a
用冒泡法对M个整数从小到大排序
分析:冒泡法排序的过程是:设有M个元素,要求从小到大排序。每次从首元素开始两两比较,即arr[j]和arr[j+1]比较,若arr[j]大于arr[j+1]则两元素交换,否则不交换,这样每一轮比较后都可得到“大数沉底,小数上浮一个位置”的结果,也就是说第一轮排好数组最后一个元素,第二轮排好数组最后两个元素。。。        经过M-1轮比较后排序结束。 代码实现如下: #include #
随机生成任意十个整数,分别利用冒泡和选择按从小到大排列。
#define _CRT_SECURE_NO_WARNINGS 1 #include #include //void sort1(int arr[])//冒泡 //{ // int tmp = 0; // for (int i = 0; i // { // for (int j = i + 1; j // { // if (arr[i] > arr[j]) /
1244(C++)有n(n小于等于100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。
Problem Description 有n(n&amp;amp;amp;lt;=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。 Input 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0表示输入数据的结束,本行不做处理。 Output 对于每个测试实例,输出插入新的元素后的数列。 #includ...
输入n个数,分别将这些数从大到小排列输出和从小到大排列输出
从大到小: #include using namespace std; int main() {  int a[1000]; int n; cin>>n; for(int i=0;i { cin>>a[i]; } for(int i=0;i { for(int j=0;j { if(a[j] swap(a[j],a[j+1]); } } for(int i
有1个包含N个整数的数组A,定义1个数组的美丽值为数组中所有不同整数的和。求数组A的所有连续子序列的美丽值之和。
有1个包含N个整数的数组A,定义1个数组的美丽值为数组中所有不同整数的和。求数组A的所有连续子序列的美丽值之和。
指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。
Description 自定义函数sort(int *p, int n),功能是对n个数排序。在main函数中,调用它,对输入的任意个数排序。 Input 多组测试数据,先输入n(n&amp;lt;100),再输入n个任意整数 Output 输出从小到大排列后的数组 Sample Input 5 9 4 3 2 1 6 34 23 12 78 -20 0 Sample Output 1 2 3 4 9 -...
编程实现:输入n个数,在这n个数中查找某个数
/*要求: 写四个函数 void input(float arr[], int n) void output(float arr[], int n) void bubblesort(float arr[], int n) int search(float arr[], int n, float num) */ #include #include #define MAXN 1000 float
对N个数进行排序
对N个数进行排序 题目描述: *对输入的n个数进行排序并输出。 输入: 输入的第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。 输出: 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。 每组测试数据的结果占一行。* 样例输入: 4 1 4 3 2 样例输出: 1 2 3 4 #
输入具有n个数字的序列,然后去除重复,并从小到大排序
输入具有n个数字的序列,然后去除重复,并从小到大排序
编写程序对N个元素数组,用冒泡排序法进行排序
/* This file is used for Exp6_1,Bubble sorting Written by Namer_Mega, Thanks for sharing your knowledge. */ #include void sorting(int a[],int n) { int j,i,temp,k; for(j = 0;j for(i =
生成n个随机数,放入数组,然后排序输出。
我把数组随机数值范围在[0,100] 思路 首先定义一个数组长度为n; 然后排序; /* 生成n个随机数,放入数组,然后排序输出。 */ public class Arroy07 { public static void main(String[] args) { print(randomArrays(100)); System.out.println(&amp;quot;--------------------...
如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
题目描述: 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1) 解析: 利用计数排序法,设置一大小为65536的int数组,范围a[0]~a[65535],并初始为0,然后遍历n个数,假设这n个数在数组array[0...n-1]中,则i取值从0到n-1同时执行a[array[i]]++,最后再依照顺序读数组a,遇到不为0时,将对应的下标读回数组array,计数是几
0到n-1数组的排序
仅限 0到n-1这种情况。数组包含n个元素,只不过可能是乱序的,需要排序。     1.检测是否有序:     2.排序。拿起第一个元素k,将其放到p[k]位置,刚才的p[k]元素,也放到他相应的位置上。 #include #include #include #include #include using namespace std; void sort_n(int *p,
02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序
1.题目描述: 对N个长度最长可达到1000的数进行排序。 输入: 输入第一行为一个整数N,(1 接下来的N行每行有一个数,数的长度范围为1 每个数都是一个正数,并且保证不包含前缀零。 输出: 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。 样例输入: 3 11111111111111111111111111111 2222
zzuli OJ 1119: 一维数组排序
Description 对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下: int sort(int a[], int n); 数组元素的输出调用PrintArr()。 Input 第一行输入一个整数n(1 Output 输出占一行。对这n个整数数按照从小到大的顺序输出,数据之间用一个空格隔开。 Sample Inp
一个控制台应用程序从键盘输入你要排序的数的个数n ,然后输入要排序的n个数,按由小到大的顺序输出
创建一个控制台应用程序从键盘输入你要排序的数的个数n ,然后输入要排序的n个数,按由小到大的顺序输出
OpenJudge百炼习题解答(C++)--题4085:数组去重排序
题: 总时间限制: 1000ms 内存限制: 1000kB 描述 小吉是银行的会计师,在处理银行帐目的时候,遇到了一些问题。有一系列整数,其中含有重复的整数,需要去掉重复后,排序输出,你能帮助小吉解决问题吗? 输入输入数据共2行,第一行输入测试数据个数n,第二行输入这n个整数,整数之间可能有重复,整数之间可能有若干个空格。 n 5,所有的整数不超过104。
编写一个对n个数据从大到小的排序C…
# include "stdio.h" # define N 3 # define M 4 main() {  int d[N][M],i,j,k,x;    float t[N];    printf("please input:");    for(i=0;i      for(j=0;j       scanf("%d",&d[i][j]);    jun(d,t);    for(k=0;
输入n,然后输入n个数,使它升序输出
#include using namespace std; int main() { int n,i,j,m,k; cin>>n; int a[n];  for(i=0;i cin>>a[i]; } for(i=0;i k=i; for(j=i+1;j if(a[k]>a[j]){ m=a[i],a[i]=a[j],a[j]=m; } } } for(i=0;i
经典题算法笔记:求最大子数组和
一、题目描述 给定一个数组a[0,...,n-1],求其最大子数组(长度>=1)和(子数组下标须连续) 输入描述:第一行一个整数n(1 二、​暴力做法 思路十分直接。 ​可先固定起点也可先固定长度,枚举出所有子数组的和。但时间复杂度太高,容易超时。 我的C++代码: #include "stdafx.h" #include using names
编程题目:PAT 1008. 数组元素循环右移问题 (20)
1008. 数组元素循环右移问题 (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……
C#练习-有n个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序
int[] arrNum = {2,4,6,8,10,12,14,16,18,20}; int num = Convert.ToInt32(Console.ReadLine()); int[] arr = new int[arrNum.Length + 1]; int index = 0; bool flag = tr...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java一个班有n个学生 python编程0基础教程