C#编程练习题

1.编写一个函数,对字符数组进行排序。(不定义数组,用params实现,输入字符间用空格隔开)
提示:从键盘随机输入一行字符,程序对字符串排序后输出,输出排序后的结果

using System;

namespace 字符串排序
{
    class Program
    {
        static string t;
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            string[] s1 = s.Split(' ');
            printarray(s1);
            Console.ReadKey();
        }
        public static void printarray( params string[] a)
        {
            for (int i = 0; i < a.Length-1; i++)
            {
                for (int j = i + 1; j < a.Length;j++ )
                    if (char.Parse(a[i]) > char.Parse(a[j]))
                    {
                        t = a[i];
                        a[i] = a[j];
                        a[j] = t;
                    }
            }
            for (int i = 0; i < a.Length;i++)
                Console.Write(a[i]+" ");
        }
    }
}

2.用递归函数实现二分查找

using System;


namespace 递归二分查找
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入数组大小:");
            int n = int.Parse(Console.ReadLine());

            Console.WriteLine("请输入数组元素按空格分开:");
            string s = Console.ReadLine();
            
            int[] nums=new int[n];
            string[] s1 = s.Split(' ');
            for (int i = 0; i < s1.Length; i++)
                nums[i] = int.Parse(s1[i]);

            Console.WriteLine("请输入要查找的元素:");
            int e= int.Parse(Console.ReadLine());

            int location=fun(nums, 0, s1.Length-1, e);
            if (location == 0) 
                Console.WriteLine("未找到");
            else 
                Console.WriteLine("位置:" + location);
            Console.ReadLine();
        }
        public static  int fun(int[] a,int low,int high,int e) {
            int mid = (low + high) / 2;

            if (low > high) return 0;
            else
            {
                if (e < a[mid])
                   return fun(a, 0,mid-1, e);
                else if (e == a[mid])
                    return mid + 1;
                else
                   return fun(a, mid+1, high, e);
            }
        }
    }
}

3.实现随机4位数的验证码生成程序,例如2f34

using System;

namespace 验证码
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "abcdefghigklmnopqrstuvwxyzABCDEFJHIGKLMNOPQRSTUVWXYZ1234567890";
                string code = "";
                Random m = new Random();
                for (int i = 0; i < 4; i++)
                {
                    int index = m.Next(0, str.Length);
                    string x = str.Substring(index, 1);
                    code += x;
                }
                Console.WriteLine(code);
                Console.Read();
        }
    }
}

4.根据以下公式计算m的值
其中 max3函数为计算三个数的最大值,如: max3(1, 2, 3) 返回结果为3。
输入示例:
1 2 3 (一行,输入三个整数,用空格隔开,分别表示a, b, c)
输出示例:
0.30 (一行,一个浮点数,小数点保留2位,为计算后m的值。)

在这里插入图片描述

using System;

namespace 计算m_的值
{
    class Program
    {
        static void Main(string[] args)
        {
            Console. WriteLine("输入三个整数,用空格隔开");
            string str = Console. ReadLine() ;
            string[] arr = str.Split(' ');
            int a = int.Parse((arr[0])) ;
            int b = int.Parse((arr[1])) ;
            int c = int.Parse((arr[2])) ;
            double m=1.0*Max3(a+b,b,c)/(Max3(a,b+c,c)+Max3(a,b,b+c));
            Console. WriteLine (m. ToString("f2"));
            Console. ReadKey() ;
        }
        public static int Max3(int a,int b,int c){
            return Math.Max(Math.Max(a, b), c);
        }
    }
}

你可能感兴趣的:(算法,c#)