由计算机生产10个100以内的整数型,放入数组,通过函数指针完成对数组的升降排?

如题所述

分这么几种:

1、通过系统来解决这个问题:

#include<iostream>

#include<cstdlib> 

#include<ctime>

#include<algorithm>

int main(){

using namespace std;

srand(time(0)); //设置随机数 

int arr[12]={}; //定义数组,下标为12是为了留些冗余

for(int i=0;i<10;i++){ //产生随机数 

arr[i]=rand()%100;

sort(arr,arr+10); //用algorithm中的sort()函数进行排序。 

for(int i=0;i<10;i++){ //输出

cout << arr[i] << " ";

}  

return 0;

}

sort函数定义:

sort

2、自定义排序函数:

#include<iostream>

#include<cstdlib> 

#include<ctime>

void sort(int arr[],int num); //排序函数原型 

int main(){

using namespace std;

srand(time(0)); //设置随机数 

int arr[12]={}; //定义数组,下标为12是为了留些冗余

for(int i=0;i<10;i++){ //产生随机数 

arr[i]=rand()%100;

sort(arr,10); //用自定义函数进行排序。 

for(int i=0;i<10;i++){ //产生随机数 

cout << arr[i] << " ";

}  

return 0;

}

void sort(int arr[],int num){

int min;

for(int i=0;i<num;i++){

min=i;

for(int j=i+1;j<num;j++){

if(arr[min]>arr[j]){

min=j;

}

}

std::swap(arr[min],arr[i]);

}

这是升序排序,降序排序原理类似

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-02-08
数组的4种声明方式:
1.先声明再初始化
例如:
//1.声明
int[] nums;
//初始化
nums = new int[5];
2.声明并初始化
例如:
//2.声明、初始化
int[] nums = new int[10];
3.创建数组同时赋值
例如:
//3.创建数组同时赋值
String[] names=new String[]{"大名","小米","夏雨荷"};
int[] ages=new int[]{21,22,21,56,13};
for (int i = 0;i < names.length;i++){
System.out.prinrln(names[i]);
}
for (int i = 0;i < ages.length;i++){
System.out.prinrln(ages[i]);
}
4.创建同时赋值,简写,不能写成两条语句
例如:
//4.创建同时赋值,简写,不能写成两条语句
String[] cities = {"上海","北京"};
扩展资料:
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本回答被网友采纳
第2个回答  2021-03-17
#include <stdio.h>
#define ARR_LEN 255 /*数组长度上限*/

#define elemType int /*元素类型d*/

/* 冒泡排序 */
void bubbleSort (elemType arr[], int len) {
elemType temp;

int i, j;
int i;
bubbleSort (arr, len);
for (i=0; i<len; i++)
printf ("%d\t", arr[i]);

putchar ('\n');
return 0;

}
for (i=0;i<10;i++)scanf("%lf",&x[i]);
for (i=0;i<9;i++)
for (j=i+1;j<10;j++){
if (x[i]>x[j]){
t = x[i];x[i]=x[j];x[j]=t;
}
}
for (i=0;i<10;i++) printf("%g ",x[i]);
return 0;本回答被网友采纳
第3个回答  2021-12-14
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sort(int *a, int n, int type)
{
int t,i,j;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if ((type>0 && a[i]>a[j]) || (type<0 && a[i]<a[j])) { t=a[i];a[i]=a[j];a[j]=t; }
}
int main()
{
int a[10];
srand(time(0));
for (int i=0;i<10;i++) a[i]=rand()%100;
printf("原始:");
for (int i=0;i<10;i++) printf("%d ",a[i]);
printf("\n升序:");
sort(a,10,1);
for (int i=0;i<10;i++) printf("%d ",a[i]);
printf("\n降序:");
sort(a,10,-1);
for (int i=0;i<10;i++) printf("%d ",a[i]);
}
第4个回答  2022-05-09
按照以下数组排序:
#define ARR_LEN 255 /*数组长度上限*/

#define elemType int /*元素类型d*/

/* 冒泡排序 */
void bubbleSort (elemType arr[], int len) {
elemType temp;

int i, j;
int i;
bubbleSort (arr, len);
for (i=0; i<len; i++)
printf ("%d\t", arr[i]);

putchar ('\n');
return 0;

}
for (i=0;i<10;i++)scanf("%lf",&x[i]);
for (i=0;i<9;i++)
for (j=i+1;j<10;j++){
if (x[i]>x[j]){
t = x[i];x[i]=x[j];x[j]=t;
}
}
for (i=0;i<10;i++) printf("%g ",x[i]);
return 0;
相似回答