标题:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
只看楼主
学好好要饭
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-5-4
结帖率:100%
已结贴  问题点数:20 回复次数:13 
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
2016-05-04 09:56
学好好要饭
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-5-4
得分:0 
谁来解答下啊
2016-05-04 11:24
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:2 
通过比较找到插入位置,再将插入位置后面原来的数后移一位,不会?

   唯实惟新 至诚致志
2016-05-04 11:37
over1230
Rank: 8Rank: 8
等 级:贵宾
威 望:25
帖 子:113
专家分:897
注 册:2009-10-9
得分:0 
原来的规律有不?要没规律,那就得先找规律,就难了。
要是只是降序或者升序,那找到原来数组中小于当前数和大于当前数的位置,然后插进去就行了。
2016-05-04 11:39
学好好要饭
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-5-4
得分:0 
回复 3楼 qq1023569223
c#语言,一开始给已个数组之后,再添加一个数,不会
2016-05-04 13:45
学好好要饭
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-5-4
得分:0 
回复 4楼 over1230
1,5,7,8,34,56,78,89,数如一个数,插入
2016-05-04 13:46
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:9 
程序代码:
using System;

namespace ConsoleTest2
{
    class Program
    {
        static void Main(string[] args)
        {
            const int n = 9;
            int[] a = { 0, 1, 2, 3, 5, 6, 7, 8, 9 };  //n=9
            int[] b = new int[n + 1];                 //n+1=10

            int insertNumber = Int32.Parse(Console.ReadLine());

            int index = 0, i = 0;
            for (;i < n; ++i)
            {
                if(a[i]>insertNumber)
                {
                    index = i;
                    break;
                }

                if (i == n - 1) index = n;
            }

            if(index==n)
            {
                for (i = 0; i < n; ++i) b[i] = a[i];
                b[n] = insertNumber;
            }
            else if(index==0)
            {
                for (i = 1; i < n + 1; ++i) b[i] = a[i - 1];
                b[0] = insertNumber;
            }
            else
            {
                for (i = 0; i < index; ++i) b[i] = a[i];
                for (i = n - 1; i >= index; --i) b[i + 1] = a[i];
                b[index] = insertNumber;
            }

            for(i=0;i<n+1;++i)
            {
                Console.Write("{0} ", b[i]);
            }

            Console.ReadKey();
        }
    }
}

   唯实惟新 至诚致志
2016-05-04 13:50
学好好要饭
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-5-4
得分:0 
回复 7楼 qq1023569223
好长啊,初学者,有点,在来一题     //10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为
            //12,2,8,22,16,4,10,6, 14,20。然后按下列规则调整
            //,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,
            //再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。
2016-05-04 14:07
学好好要饭
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-5-4
得分:0 
回复 7楼 qq1023569223
有没有这种稍微有“难度”的c#题的书籍推荐,练习编程,我初学者
2016-05-04 14:20
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:9 
回复 8楼 学好好要饭
书什么的没有,你要的话找C语言的题目是一样的。下面是另一个题目的程序。
程序代码:
using System;

namespace ConsoleTest2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = { 12, 2, 8, 22, 16, 4, 10, 6, 14, 20 };
            int n = 0;

            display(a, n);

            while(!process(a))
            {
                ++n;
                display(a, n);
            }

            display(a, n+1);

            Console.WriteLine("count={0},result={1}", n+1, a[0]);
            Console.ReadKey();
        }

        static bool process(int[] a)
        {
            int i = 0;
            int tmp = a[9];
            int temp;

            for (; i < 10; ++i)
            {
                temp = a[i];
                a[i] = a[i] / 2 + tmp / 2;
                tmp = temp;
            }
            
            for(i=0;i<10;++i)
            {
                if (a[i] % 2 == 1) a[i] += 1;
            }

            int j = 0;
            for(i=0;i<10;++i)
            {
                for(j=i+1;j<10;++j)
                {
                    if (a[i] != a[j]) return false;
                }
            }

            return true;
        }

        static void display(int[] a,int cnt)
        {
            int i = 0;
            Console.Write("{0}>>>>>", cnt);
            for (; i < 10; ++i) Console.Write("{0} ", a[i]);
            Console.WriteLine();
        }
    }
}


[此贴子已经被作者于2016-5-4 17:29编辑过]


   唯实惟新 至诚致志
2016-05-04 16:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464372-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.167646 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved