精华内容
下载资源
问答
  • 编写函数fun,在一个按升序排列数组中插入一个数,插入后,数组元素仍按升序排列。 函数接口定义: void fun(int a[N],int number); 其中 a 和 number 都是用户传入的参数。函数在一个按升序排列数组 a ...

    在一个升序排列的数组中插入一个数 (10分)
    编写函数fun,在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

    函数接口定义:

    void fun(int a[N],int number);
    

    其中 a 和 number 都是用户传入的参数。函数在一个已按升序排列的数组 a 中插入一个数 number ,插入后,数组元素仍按升序排列
    裁判测试程序样例:

    #include <stdio.h>
    #define N 11
    void fun(int a[N], int number);
    int main()
    {
        int i, number, a[N] = {1, 2, 4, 6, 8, 9, 12, 15, 149, 156};
        scanf("%d", &number);
    
        printf("The original array:\n");
    
        for (i = 0; i < N - 1; i++)
            printf("%5d", a[i]);
    
        printf("\n");
    
        fun(a, number);
    
        printf("The result array:\n");
    
        for (i = 0; i < N; i++)
            printf("%5d", a[i]);
    
        printf("\n");
        
        return 0;
    }
    

    输入样例:

    6
    

    输出样例:

    The original array:
        1    2    4    6    8    9   12   15  149  156
    The result array:
        1    2    4    6    6    8    9   12   15  149  156
    

    个人答案如下:

    void fun(int a[N], int number)
    {
        int m;
    
        for (int i = 0; i < N; i++)
        {
            if (a[i] >= number)
            {
                m = i;
                for (int q = (N-1); q > i; q--)
                {
                    a[q] = a[q - 1];
                }
                break;
            }
        }
    
        a[m] = number;
    }
    

    原理:
    如果输入的数number大于arr[i];
    那么从数组arr最后一位arr[N]开始,将arr[N]的值赋给arr[N+1],同时N- -,直到N>i;
    最后将number赋值给arr[i];

    展开全文
  • 把两按升序排列数组合并成一升序数组,要求用函数实现 #include<stdio.h> void f1(int  a[], int b[]) { int i = 0, j = 0, k = 0; int c[21]; while (i < 4 && j < 5) { if (a[i]...

    把两个已按升序排列的数组合并成一个升序数组,要求用函数实现

    #include<stdio.h>

    void f1(int  a[], int b[])

    {

    int i = 0, j = 0, k = 0;

    int c[21];

    while (i < 4 && j < 5)

    {

    if (a[i] < b[j])

    c[k++] = a[i++];

    else

    c[k++] = b[j++];

    }

    while (j < 5)

    {

    c[k++] = b[j++];

    }

    while (i < 4)

    {

    c[k++] = a[i++];

    }

    for (i = 0; i < k; ++i)

    printf("%d,", c[i]);

    }

    int main()

    {

    int  a[] = { 2,3,5,8 };

    int b[] = { 0,1,4,6,7 };

    f1(a, b);

    展开全文
  • 【问题描述】将两按升序排列数组合并成一升序数组,要求主函数输入两个数组,并输出合并后的结果,被调函数实现合并。 【输入形式】 输入数组A的元素数及元素 输入数组B的元素数及元素 【输出...

    【问题描述】将两个已按升序排列的数组合并成一个升序数组,要求在主函数中输入两个数组,并输出合并后的结果,在被调函数中实现合并。

    【输入形式】

    输入数组A的元素个数及元素

    输入数组B的元素个数及元素

    【输出形式】

    输出合并后的结果

    【样例输入】(下划线部分为键盘输入,其余部分为程序输出)

    Enter n: 3

    Enter 3 integers: 5 9 11

    Enter m: 3

    Enter 3 integers: 1 3 8

    【样例输出】

    1 3 5 8 9 11

    【样例说明】
    输入提示符后要加一个空格。例如“Input integers: ”,其中“:”后要加一个且只能一个空格。
    输出数据控制字符用%4d。
    英文字母区分大小写。必须严格按样例输入输出。

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    
    void bin(int n,int a[],int m,int b[])
    {
        int c[200];
        int i,j;
        for(i=0;i<n;i++)
        {
            c[i]=a[i];
        }
        for(i=n;i<n+m;i++)
        {
            c[i]=b[i-n];
        }
        for(i=0;i<m+n;i++)
        {
            for(j=0;j<m+n;j++)
            {
                if(c[i]<c[j])
                {
                    int t;
                    t=c[i];
                    c[i]=c[j];
                    c[j]=t;
                }
            }
        }
        for(i=0;i<n+m;i++)
        {
            printf("%4d",c[i]);
        }
    }
    
    int main()
    {
        int a[100],b[100];
        int m,n;
        printf("Enter n: ");
        scanf("%d",&n);
        printf("Enter %d integers: ",n);
        int i;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("Enter m: ");
        scanf("%d",&m);
        printf("Enter %d integers: ",m);
        for(i=0;i<m;i++)
        {
            scanf("%d",&b[i]);
        }
        bin(n,a,m,b);
        return 0;
    }
    

    为了方便,函数有四个参数,如需改为两个参数,可在函数内求出数组长度。

    展开全文
  • 【问题描述】将两按升序排列数组合并成一升序数组,要求主函数输入两个数组,并输出合并后的结果,被调函数实现合并。 【输入形式】 输入数组A的元素数及元素 输入数组B的元素数及元素 【输出...

    题头的话:长按点赞可私我赠送50+本C与C++书籍电子书资源

    数组合并成

    【问题描述】将两个已按升序排列的数组合并成一个升序数组,要求在主函数中输入两个数组,并输出合并后的结果,在被调函数中实现合并。

    【输入形式】

    输入数组A的元素个数及元素

    输入数组B的元素个数及元素

    【输出形式】

    输出合并后的结果

    【样例输入】(下划线部分为键盘输入,其余部分为程序输出)

    Enter n: 3

    Enter 3 integers: 5 9 11

    Enter m: 3

    Enter 3 integers: 1 3 8

    【样例输出】

    1 3 5 8 9 11

    【样例说明】
    输入提示符后要加一个空格。例如“Input integers: ”,其中“:”后要加一个且只能一个空格。
    输出数据控制字符用%4d。
    英文字母区分大小写。必须严格按样例输入输出。

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    
    void bin(int n,int a[],int m,int b[])
    {
        int c[200];
        int i,j;
        for(i=0;i<n;i++)
        {
            c[i]=a[i];
        }
        for(i=n;i<n+m;i++)
        {
            c[i]=b[i-n];
        }
        for(i=0;i<m+n;i++)
        {
            for(j=0;j<m+n;j++)
            {
                if(c[i]<c[j])
                {
                    int t;
                    t=c[i];
                    c[i]=c[j];
                    c[j]=t;
                }
            }
        }
        for(i=0;i<n+m;i++)
        {
            printf("%4d",c[i]);
        }
    }
    
    int main()
    {
        int a[100],b[100];
        int m,n;
        printf("Enter n: ");
        scanf("%d",&n);
        printf("Enter %d integers: ",n);
        int i;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("Enter m: ");
        scanf("%d",&m);
        printf("Enter %d integers: ",m);
        for(i=0;i<m;i++)
        {
            scanf("%d",&b[i]);
        }
        bin(n,a,m,b);
        return 0;
    }
    
    展开全文
  • 把两按升序排列数组合并成一升序数组,要求用函数实现(归并排序) i为a1数组元素下标 j为a2数组元素下标 k为a3数组元素下标 原理:比较i,j数字大小,当i<j时,把i的元素放入a3,给K++,i++(否则...
  • 统计一个数字在升序排序数组中出现的次数。 思路: 涉及到在已经排好序的数组中找元素,很自然的就想到了二分查找法 代码需要注意的地方: 二分查找法很容易边界值选择错误,可以具体举例进行测试,以便修改...
  • 把两按升序排列数组合并成一升序数组,要求用函数实现(归并排序)。 #include<stdio.h> void show(int* p3,int len3) { for (int i = 0; i < len3; ++i) { printf("%d,", p3[i]); } puts("\b...
  • 分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍来!请点击http://www.captainbed.net /* * Created by Chimomo * * Let X[0...n-1] and Y[0...n-1] be the two ...
  • 1.程序编写 #include<stdio.h> void show(int *p3, int lenc) { for (int i = 0; i < lenc; i++) ...printf("%d,",p3[i] );...void Compare(int *p1, int lena, int *p2, int lenb, int *p3) ...
  • 1、例如输入数组1、2、4、7、11、15和数字15,输出4和11 2、代码 void fun(int arr[],int n,int key){ ...//因为已经排过序,所以声明两个变量,从第一个元素和最有一个元素出发 while(i!=j){ if(arr[i]+a...
  • 给定的一维已排序(升序数组中寻找插入一个元素的位置 给定的一维已排序(升序数组中寻找插入一个元素的位置,返回该元素在数组中的下标值。 如果该元素已经存在于数组中,则直接返回该元素在数组中的下...
  • //用两种方式,实现需求:判断一个int[]数组,是否是一个升序数组 //提示:循环、递归 public static void main(String[] args) { //创建一个数组数组的数可以任意更改 int []array=new int[]{1,2,6,5,4}; ...
  • 升序排列字符数组

    2016-04-13 10:30:42
    升序排列字符数组
  • 题目:输入一个已经按升序排序过的数组一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字M,输出任意一对即可。 例如输入数组1、2、4...
  • 现有一个数组,内部元素采用升序排列,请找出其中的两个数,其和为sum。请使用最快的方法。 思路1: 双指针遍历。 #include <iostream> class arrayFind { public : arrayFind() { } virtual ~...
  • VBA示例之 数组按升序排列,供初学者参考,大牛勿进~~~~~~~
  • 原文转自:http://blog.csdn.net/u013322907/article/details/38300711题目:输入一个已经按升序排序过的数组一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n)。如果有多...
  • 题目:输入一个已经按升序排序过的数组一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组 1 ...
  • //把二个数组合并成一个数组按升序排列; public static void main(String[] args){ int[] arr = {5,23,35,17,78,36,7,45,12}; int[] arr1 = {6,24,38,74,47,10}; int[] arr2 = MergeNewArr(arr,arr1); print...
  • 题目:输入一个已经按升序排序过的数组一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、...
  • 数组升序排列

    2021-01-25 22:12:56
    数组升序排列
  • 题目描述:给定一个整形数组数组升序排列的,可能存在负数,统计数组中所有不同绝对值的元素的个数。 思路:设置两个指针,分别指向数组的第一个元素和最后一个元素,可以看做是两个有序数组的合并过程(从大到...
  • 冒泡排序(数组升序数组降序)

    千次阅读 2019-02-26 12:55:34
    冒泡排序(数组升序数组降序) 1、代码展式 index.html &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,396
精华内容 27,758
关键字:

在一个已经按升序排列的数组中