c++数组从小到大排序
答:解释:1.第一个for循环:利用数组循环输入4个变量。2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。3.第三个for循环:利用循环依次输出排序后的数组,每输出一个加一个...
答:max+=1; //更新最大数索引 //将最大的数移到最后 temp=num[max];for(i=max;i<length-1;i++ ){ num[i]=num[i+1];} num[length-1]=temp;return;} void main(){ int i;int length; //数据元素个数自己定义不超过100 int num[100];printf( "请输入数组的个数:\n");scanf(...
答:选择排序的思想是:每一趟的排序过程都是在当前位置后面剩下的待排序对象中选出值最小的那个,然后放到当前位置上。该程序中k的定义主要是为了存放数组中最小数的位置。然后通过t=array[k];array[k]=array[i];array[i]=t;这三条语句,再把这数组中最小的数字放到前面。注意C语言当中的“=”不...
答:有些简单的东西不用指针,用了有时反而会错 这是我以前写的 include <stdio.h>int main(){ int i,j,x[100],y=0,a; printf("请输入数字数量:\n"); scanf("%d",&a); printf("请输入各个数字:\n"); for(i=0;i<a;i++) { scanf("%d",&x[i]); }...
答:include<stdio.h> int main(){ int a[11],min=0,t;for(int i=0;i<10;i++)scanf("%d",&a[i]);min=a[0];for(int i=0;i<10;i++)if(a[i]<min)//求最小值 min=a[i];for(int i=0;i<10;i++)//冒泡排序 for(int j=0;j<9-i;j++)if(a[j]>a[j+1]){ t=a...
答:include<stdio.h> include<algorithm> using namespace std;define maxn 1000 int a[maxn];bool cmp ( int a, int b ) { return a > b;}int main(){ int i, n;printf ( "请输入要排序的元素个数:" );scanf ( "%d", &n );printf ( "请依次输入%d个数:", n );for ( i ...
答:我介绍两种排序方法吧 1 选择排序 void sort(int a[ ],int length) /* 这个数组数据类型你可以自己更改 float 也可以 不过其他的也要相应的改 比如%d改为%f等,length 为数组长度*/ {int *p,temp,i=0,*min;while(i<length){ min=&a[i];for(p=a+i;p<a+length;p++){if(*p<*mi...
答:有两种方法可以实现:1 对数组进行从小到大排序,排序方法任意。在排序后,数组的第K个元素即为第K小的元素。2 对于N值较大,K值较小的情况,1中的时间开销偏大。这时可以用额外的空间开销,来换取更高的效率。方法为:a) 开辟一个K个元素的临时空间M;b) 取数组中的第一个元素,置于M中;c)...
答:include <stdio.h>int main(){int a[10];int temp;printf("输入5个数:\n");for(int i=0;i<5;i++){ printf("第%d个数",i+1);scanf("%d",&a[i]);} for( i = 0;i<5;i++)for(int j = i+1;j<5;j++)if(a[i]>a[j])//降序只要改变这里的大于号就行了{temp = ...
答:有插入排序:直接插入排序、折半插入排序、希尔排序;交换排序:冒泡排序、快速排序;选择排序:简单选择排序、堆排序;归并排序;基数排序。常用冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面(数组由小到大排序)。即首先比较第1个和第2个数,将小数放前,大数放后。然后...
网友评论:
赫往19167337460:
C++ 数组中插入一个数 从小到大小排序 -
60199杜曼
: #include #define MAX_INPUT_NUMBER 50 void printf_arr(int *arr, int cnt) { int i; for (i = 0; i < cnt; i++) { printf("%d ", arr[i]); } printf("\r\n"); } void sort(int *arr, int cnt) { int i, j; int tmp; /* 冒泡排序 */ for (i = 0; i < cnt; i++) { for (j = 0; j < cnt - 1; j++) { if...
赫往19167337460:
用快速排序法(C++)排序 从小到大排,最好能讲一下原理,谢谢啦 -
60199杜曼
: #include using namespace std;void swap(int& a,int& b) {int c;c=a;a=b;b=c; }void sort(int* a, int n)//快排函数,从小到大 {if(n<=1) return;if(n==2){if(a[1] swap(a[1],a[0]);return;}swap(a[0],a[n/2]);int t = *a;int* L=a+1;//从左向右走,遇到...
赫往19167337460:
c++数组从小到大排序 -
60199杜曼
: 这个很简单啊,我打个比方,如果有三个盒子分别叫A,B,C,假设盒子里只能放一个数字,其中A盒子里装着一个数字11,B盒子里装着一个数字13,现在你想交互这两个盒子里的数字,你肯定可以先将其中一个盒子里的数字拿在手上,然后进行...
赫往19167337460:
C++编写指针函数实现对n个数组元素的由大到小的排序 -
60199杜曼
: #include<iostream> #include<cstdlib>//函数exit的函数头 using namespace std; int main() {void sort(int x[],int n);//函数声明int n;cin>>n;//数组长度由用户输入int *a=new int[n];//动态分配数组的长度if(a==NULL){cout<<"Error,Cannot ...
赫往19167337460:
c++ 排序问题输入n个数,对n个数进行从小到大排序.并说出值为x的数的排名.并将top5显示出来.用vc6.0 或者mfc都可以.要求有详细的注解,并可以执... -
60199杜曼
:[答案] #include#include#includeusing namespace std;int main(){ vector v; int i;//循环变量 int n;//表示n个数 int x;//表示要查找的数据 int temp;//表示一个临时值 coutn; while(n--)//对n个数据进行输入,并且写入向...
赫往19167337460:
c++求助 一维数组排序(小到大) -
60199杜曼
: #include#define N 10 using namespace std; class Xuan { public: void input(); void sort(); void out(); private: int array[10]; int min; }; void Xuan::input() { int i=0; for(i;i { cin >> array[i]; } }void Xuan::sort() { int i,j; for(i=0;i { min=i; for(j=i+1;j { if(array[j] min=j...
赫往19167337460:
C++ 定义一个数组,将里面的 十个数中的奇数按从小到大的顺序排序 -
60199杜曼
: 修改如下://---------------------------------------------------------------------------#include using namespace std; int main(void) //注意这里 { int a[10]; for (int i = 0; i for (int j = i+1; j if (a[i]>a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; } for (int i = 0; i { cout if (a[i]%2==1) cout cout}...
赫往19167337460:
C++ 将几个极大数字进行从小到大排列 -
60199杜曼
: 给个思路: 1、先把数字赋值到一个string 中(MFC的话最好是cstring)然后先取第一个数字,如果为负数,存入一个string ,如果不是“-”则存入另一个. 2、先比较正数的数字集合:首先取一下长度,将大小降序排列. 3、再比较同样长度...
赫往19167337460:
在C++中数组的排序方法有哪些? -
60199杜曼
: 大体上可以分为四类:插入排序,选择排序和交换排序; 插入排序有:直接插入排序,希尔排序; 选择排序有:直接选择排序,堆排序 交换排序有:冒泡排序,快速排序 如果数组比较大的话也可用归并排序,效率比较高 各种排序方法各有所长,有的效率比较高,有的空间消耗比较小,总的来说,要针对不同的问题选择合适的方法; 另外,我有各种排序的源代码需要的话留下邮箱.是我以前学的时候写的!
赫往19167337460:
用C++语言编一段程序:让一组不知个数的数字按从小到大的顺序排列;若遇到两个相同的数字只取一个. -
60199杜曼
: 直接用set容器进行存储数字就好了,set容器每个元素的值唯一,重复的值是无法插入到set容器中的,并且set容器自动排列,如果是数字的值,正好会从小到大排列的.下面就是我对该容器的使用 .#include using namespace std; int main(int ...