精华内容
下载资源
问答
  • C语言升序排列

    千次阅读 2020-12-17 22:56:47
    //升序排列 #include<stdio.h> void sort(int array[],int n); //排序函数声明 void swap(int *ex1,int *ex2); //交换函数声明 int main() { int a[10],i; printf(“请输入要排列的数字:\n”); for(i=0;i<...

    @TOCC语言中的排列

    1,代码

    //升序排列
    #include<stdio.h>
    void sort(int array[],int n); //排序函数声明
    void swap(int *ex1,int *ex2); //交换函数声明
    int main()
    {
    int a[10],i;
    printf(“请输入要排列的数字:\n”);
    for(i=0;i<(sizeof a/sizeof a[0]);i++){
    scanf("%d",&a[i]);}
    sort(a,sizeof a/sizeof a[0]);
    printf(“排列之后的数字是:\n”);
    for(i=0;i<(sizeof a/sizeof a[0]);i++){
    printf("%d",a[i]);}
    printf("\n");
    return 0;
    }
    void sort(int array[],int n)
    {
    int i,j,k,temp;
    for(i=0;i<n-1;i++){
    k=i;
    for(j=i+1;j<n;j++){
    if(array[j]<array[k]){
    k=j;
    }
    }
    // temp=array[k];array[k]=array[i];array[i]=temp; //可以用swap代替
    swap(&array[k],&array[i]);
    }
    }
    void swap(int *ex1,int *ex2)
    { int mid;
    mid=*ex1;
    *ex1=*ex2;
    *ex2=mid;
    }

    收获

    在写完排序代码之后,我又有了一些新的体会:
    1,对指针的理解加深了,之前在输出排列完之后的数时我写的是
    printf("%d",&a[i]);
    结果输出的是十进制的地址,开始我还以为是算法错了,编译器也没有报错,后来才发现错了。但是通过之歌小错误,又加深了对printf的理解。
    2,sizeof a/sizeof a[0];这个方法最早我是在MOOC大学上翁恺老师的课堂上看到的,我个人觉得很巧妙,就学习借鉴过来了,下面简单介绍一下用法:sizeof a是数组所占的字节,而sizeof a[0]是首元素所占的字节。所以sizeof a/sizeof a[0]就是数组的长度。
    3,前面的这段代码只要修改一个符号就可以实现降序排列。

    展开全文
  • 二维数组升序排列

    2017-09-02 21:00:22
    package tao.leetcode; import java.util.*; /** * Created by Tao on 2017/7/30. */ public class ...//第二列由大到小排列 return b[ 0 ] - a[ 0 ]; /// /第一列由大到小排列 } }`
    package tao.leetcode;
    import java.util.*;
    /**
     * Created by Tao on 2017/7/30.
     */
    public class MyLeetcode {
        public static void main(String[] args) {
            int[][] people = {{7,0}, {4,4}, {7,1}, {5,0}, {6,1}, {5,2}};
            final int[] arOrders = {1,0};
            Arrays.sort(people, new Comparator<Object>() {
                public int compare(Object oObjectA, Object oObjectB) {
                    int[] arTempOne = (int[])oObjectA;
                    int[] arTempTwo = (int[])oObjectB;
                    for (int i = 0; i < arOrders.length; i++) {
                        int k = arOrders[i];
                        if (arTempOne[k] > arTempTwo[k]) {
                            return 1;
                        }
                        else if (arTempOne[k] < arTempTwo[k]) {
                            return -1;
                        }
                        else {
                            continue;
                        }
                    }
                    return 0;
                }
            });
    
            for (int i = 0; i < people.length; i++) {
                for (int j = 0; j < people[0].length; j++) {
                    System.out.print(people[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
    

    output:
    5 0
    7 0
    6 1
    7 1
    5 2
    4 4
    其中arOrders[]控制排序列的顺序

            Arrays.sort(people, new Comparator<int[]>() {
                public int compare(int[] a, int[] b) {
                    if (b[0] == a[0]) return a[1] - b[1]; //第二列由大到小排列
                    return b[0] - a[0]; ////第一列由大到小排列
                }
            }`
    展开全文
  • 数组升序排列后,插入一个数,仍然保持升序排列。 先进性逆序排序 ```java` public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); int[] ...

    将数组升序排列后,插入一个数,仍然保持升序排列。

    先进性逆序排序
    ```java`
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int[] scores = new int[]{99,85,82,63,60};
    int i,j;

    	//定义一个临时变量,将数组中第一个数赋给这个临时变量
    	int min =scores[0];
    	
    	//利用循环,通过冒泡排序将大的数不断置换到数组后面,小的数置换到数组前面
    	for(i=0; i<scores.length; i++){
    		for(j=i+1; j<scores.length; j++){
    			if(scores[i]>scores[j]){
    				min = scores[j];
    				scores[j] = scores[i];
    				scores[i] = min;	
    			}
    		}
    	}
    	
    	//定义一个新数组,通过循环把老的数组里的数复制到新数组里
    	int[] newScores = new int[6];
    	for(i=0; i<scores.length; i++){
    		newScores[i] = scores[i];
    	}
    	
    	//定义一个布尔值,作为标记
    	boolean a = false;
    	
    	//数组下标
    	int index = 0;
    	System.out.println("请输入一个正整数:");
    	int num = input.nextInt();
    	
    	//利用循环将插入的数与数组中的数进行比较
    	for(i=0; i<newScores.length-1; i++){
    	//当遇到数组中的数比这个数大时,记下此时数组中的数的下标,并且break.跳出循环
    		if(num<newScores[i]){
    			index = i;
    			break;	
    		}
    		//当这个数比数组中所有的数都大时,将这个点标记为true,并将数组中最后一个下标索引赋予index
    		while(num>=newScores[newScores.length-2]){
    			a = true;
    			index = newScores.length-1;
    			break;
    	
    		}
    	}
    	//当a为false时,用循环将插入位置的数及之后的数逐个向后移动一位(必须从最后一个数开始移动)
    	if(a==false){
    		for(i=newScores.length-1; i>index; i--)
    		{
    				newScores[i] = newScores[i-1];
    		}
    		数移动完之后再将这个数插入到已标记好的位置
    		newScores[index] = num;
    	//当a为true时,只需把数插入到数组的最后一位
    	}else{
    		newScores[index] = num;
    	}
    	//循环输出
    	for(i=0; i<newScores.length; i++){
    		System.out.print(newScores[i]);
    	}
    

    }

    
    
    
    展开全文
  • 随机输入一个整型数组,将其升序排列后输出。 #include<stdio.h> #define n 5 //数组的长度 int main() { int i,j,a[n],temp,flag; for(i=0; i<n; i++) { scanf("%d",&a[i]); } for(i=1; i&...

    随机输入一个整型数组,将其升序排列后输出。

    #include<stdio.h>
    #define n  5   					//数组的长度
    int main()
    {
        int i,j,a[n],temp,flag;
        for(i=0; i<n; i++) {
            scanf("%d",&a[i]);
        }
        for(i=1; i<n; i++) {
            for(j=0; j<n-1; j++) {
                flag=1;
                if(a[j]>a[j+1]) {
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                    flag=0;
                }
            }
            if(flag) {
                break;
            }
        }
        for(i=0; i<n; i++) {
            printf("%d ",a[i]);
        }
        return 0;
    }
    
    
    展开全文
  • C语言数组排序法(升序

    千次阅读 2021-04-19 22:59:09
    一、冒泡排序 主要思路:相邻两个数的比较交换 #include<stdio.h> int main( ) { int a[10],temp=0; for(int i=0;i<10;i++) { scanf("%d",&a[i]); } for(int k=0;k<9;k++) ...
  • 合并数组升序排列

    2020-05-20 19:47:40
    public class Demo22{ /** 给两个数组 数组A:“1, 7, 9, 11, 13, 15, 17, 19” ... 两个数组合并成数组C,按着升序排序。 */ public static void main(String[] args){ //定义两个数组 ...
  • C++ | 数组升序插入

    2019-10-07 17:54:45
    编写一个插入排序函数InsertSort,三个参数:第一参数是含有n个元素的数组,这n个元素已升序排序;第二个参数是当前数组的元素个数;第三个参数是要插入的整数。 该函数功能实现一个整数插入到数组中,然后进行升序...
  • C语言数组之排序

    万次阅读 2019-03-25 19:56:34
    C语言中,不带任何下标的数组名代表数组的首地址,因此采用数组名作为函数参数的格式为 数组类型 数组名[ ] 不进行下标边界检查,里面的数字可以不写。只是另函数接受数组的首地址,通过间接寻址访问主调函数的...
  • } bubbleSortingFunction函数的功能是: 对数组元素进行升序排序,排序千万种,冒泡是一种。 int reverseOrder(int array[] , int length) { int e,middle,a = 0 ; for(e=0 ;e; e++) { a++; middle = array[e]; ...
  • C语言 在一个升序排列数组中插入一个数

    千次阅读 多人点赞 2020-05-12 03:22:59
    在一个升序排列数组中插入一个数 (10分) 编写函数fun,在一个已按升序排列数组中插入一个数,插入后,数组元素仍按升序排列。 函数接口定义: void fun(int a[N],int number); 其中 a 和 number 都是用户传入的...
  • 初始化一维数组中的9个元素a[10]={2,5,6,8,11,15,17,20,25},要求该数组已经按升序排列,从键盘输入一个整数num,并将其插入到数组a中,要求插入操作完成后,数组中的元素仍按升序排列。可根据需要定义变量。 #...
  • 1636. 按照频率将数组升序排序(C++)1 题目描述2 示例描述2.1 示例 12.2 示例 22.3 示例 33 解题提示4 解题思路5 源码详解(C++) 1 题目描述 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。...
  • 1.数组知识点 2.数组置换 3.冒泡逆序 4.冒泡排序 *1.数组知识点 数组创建: type_t arr_name [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小 int arr1[] = {1,2,3,4}; int...
  • C语言数组之查找

    千次阅读 2019-03-26 18:41:27
    基本思想:利用循环顺序扫描整个数组,一次将每个元素与待查找的元素进行比较,若找到则停止循环,输出其位置值;若所有的元素都比较后仍为找到,则循环结束,输出未找到。 #include <stdio.h> int bansearch...
  • 对于数组部分知识点的学习,主要需要掌握:计算平均分、最高分、...2.c语言数组的下标都是从0开始的。 3.最好把幻数定义成宏常量(或const常量),当需要修改常数时,只需要修改宏定义(或const常量的定义)即可。例in...
  • 今天在做下面这道题的时候糊涂了,把二维数组的排序做错了。 题目 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 ...
  • 数组排序,实现升序和降序,输出最大值最小值

    千次阅读 热门讨论 2021-01-16 19:29:07
    运行结果 从小到大排序输出:13.14 < 52.1 < 66.6 < 99.99 < 100.0 从大到小排序输出:100.0 > 99.99 > 66.6 > 52.1 >...定义数组 // 定义数组 double[] arr = {66.6, ...// 遍历输出(升序 小到
  • 给定两个数组,将其合并并且按照升序排列 public class Test { public static void main(String[] args) { int[] arr1 = {1,7,9,11,13,15,17,19}; int[] arr2 = {2,4,6,8,10}; int[] mergeArray = ...
  • 先将两个数组进行合并,可以利用C语言的memcpy函数进行;  2. 将新数组进行冒泡排序;  3. 过滤掉重复元素; 代码如下: #include <stdlib.h> #include<string.h> //冒泡排序 void sortArray...
  • C语言数组,将元素中的数字从大到小排列

    万次阅读 多人点赞 2017-12-25 10:11:10
    #include void main() { int scores[] = {543, 323, 32, 554, 11, 3, 112}; int i; int j; int k; for(i=0;i { for(j=i+1;j { if(scores[i] { k=scores[i]; scores[i]=scores[j]; scores[j]=k;...}
  • #include<stdio.h> void sort(int x[], int n); int main() { int arr[10] = { 11,3,7,23,15,79,66,58,69,45 }, i; sort(arr, 10); printf("排序结果如下:\n"); for (i = 0; i <......
  • #include <stdio.h> void show(int* p, int len) { for (int i = 0; i < len; ++i) { printf("%d,", p[i]);...void arrayMerge(int* p1, int len1, int* p2, int len2, int* p3) ...int i ,j ...
  • #include<stdio.h> void sort(int x[],int n); int main() { int arr[10] = { 11,3,7,23,15,79,66,58,69,45 },i; sort(arr, 10); printf("排序结果如下:\n"); for (i = 0; i <... ...
  • C语言数组中插入一个数,升序降序

    千次阅读 2014-12-28 10:37:12
    大于号升序小于号降序  num[i+1] = num[i];  }  else  {  num[i+1] = n;  break;  }  }  for (int i=0; i; i++) {  printf("%d ", num[i]);  }  printf("\n"); ...
  • 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入:nums = [2,6,4,8,10,9,...
  • //输出升序排序后的数组a,b for(int i = 0; i ; i++) { printf("%d ", a[i]); } printf("\n"); for(int i = 0; i ; i++) { printf("%d ", b[i]); } printf("\n"); //将两个有序的数组合并为一个有序的...
  • c语言中实现冒泡排序: 简介:“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。冒泡排序应该是最常见的排序方法了,c语言初学者一定要学会使用。 冒泡排序(BubbleSort)的...
  • 程序(升序): #include<stdio.h> #include<stdlib.h> #include<time.h> /* 对用随机函数生产的10个整数 进行升序 ————选择排序 */ void p(int a[],int n) { int ..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,266
精华内容 2,906
关键字:

c语言数组升序排列

c语言 订阅