zoukankan      html  css  js  c++  java
  • 函数附加练习2

    1、写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

    主要代码:

            static void Main(string[] args)
            {
                Program method = new Program();
                ArrayList a = new ArrayList();
                Console.Write("请输入长度:");
                int n = int.Parse(Console.ReadLine());
                for (int i = 0; i < n; i++)
                    a.Add(Console.ReadLine());
                ArrayList b = (ArrayList)method.word(a);
                foreach (object c in b)
                    Console.Write(c + "	");
                Console.ReadLine();
            }
            public object word(object a)
            {
                ArrayList b = (ArrayList)a;
                b.Reverse();
                return b;
            }

    结果:

    2、写一个函数,将两个字符串连接。

    主要代码:

            static void Main(string[] args)
            {
                Program method = new Program();
                Console.Write("请输入长度:");
                int n = int.Parse(Console.ReadLine());
                string[] a = new string[n];
                string[] b = new string[n];
                for (int i = 0; i < n; i++)
                {
                    Console.Write("a=");
                    a[i] = Console.ReadLine();
                    Console.Write("b=");
                    b[i] = Console.ReadLine();
                }
                method.array1(a, b, n);
                Console.ReadLine();
            }
            public void array1(string[] a, string[] b, int n)
            {
                string[] c = new string[2 * n];
                for (int i = 0; i < n; i++)
                    c[i] = a[i];
                for (int j = 0; j < n; j++)
                    c[n + j] = b[j];
                foreach (string d in c)
                    Console.Write(d + "	");
            }

    结果:

    3、写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。

    主要代码:

            static void Main(string[] args)
            {
                Program method = new Program();
                ArrayList a = new ArrayList();
                Console.Write("请输入长度:");
                int n = int.Parse(Console.ReadLine());
                for (int i = 0; i < n; i++)
                    a.Add(Console.ReadLine());
                ArrayList b = (ArrayList)method.character(a);
                foreach (object c in b)
                    Console.Write(c + "	");
                Console.ReadLine();
            }
            public object character(object a)
            {
                ArrayList b = (ArrayList)a;
                ArrayList c = new ArrayList();
                for (int i = 0; i < b.Count; i++)
                {
                    if (b[i].ToString() == "a" || b[i].ToString() == "A" || b[i].ToString() == "e" || b[i].ToString() == "E" || b[i].ToString() == "i" || b[i].ToString() == "I" || b[i].ToString() == "o" || b[i].ToString() == "O" || b[i].ToString() == "u" || b[i].ToString() == "U")
                        c.Add(b[i]);
                }
                return c;
            }

    结果:

    4、写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字之间空一个空格。

    主要代码:

            static void Main(string[] args)
            {
                Program function = new Program();
                Console.Write("请输入:");
                int n = int.Parse(Console.ReadLine());
                if (n > 999 && n < 10000)
                    function.number(n);
                else
                    Console.WriteLine("输入有误!");
                Console.ReadLine();
            }
            public void number(int n)
            {
                int n1 = 0, n2 = 0, n3 = 0, n4 = 0;
                n1 = n / 1000;
                n2 = (n - n1 * 1000) / 100;
                n3 = (n - n1 * 1000 - n2 * 100) / 10;
                n4 = n % 10;
                Console.WriteLine("{0}	{1}	{2}	{3}", n1, n2, n3, n4);
            }

    结果:

    5、写一个函数,输入一行字符,将此字符串中最长的单词输出。

    主要代码:

            static void Main(string[] args)
            {
                Program function = new Program();
                Console.Write("请输入长度:");
                int n = int.Parse(Console.ReadLine());
                string[] character = new string[n];
                for (int i = 0; i < n; i++)
                {
                    Console.Write("请输入单词:");
                    character[i] = Console.ReadLine();
                }
                function.word(character, n);
                Console.ReadLine();
            }
            public void word(string[] character, int n)
            {
                string ml = character[0];
                    for (int i = 0; i < n; i++)
                    {
                        if (ml.Length<character[i].Length)
                        {
                            ml = character[i];
                        }
                    }
                Console.WriteLine("最长单词为{0}。", ml);
            }

    结果:

    6、用牛顿迭代法求根。方程为ax3+bx2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根,求出跟后由主函数输出。

    主要代码:

            static void Main(string[] args)
            {
                Program function = new Program();
                int a = 1, b = 2, c = 3, d = 4;
                Console.WriteLine("x={0}", function.method(a, b, c, d));
                Console.ReadLine();
            }
            public double method(int a, int b, int c, int d)
            {
                double x0 = 0;
                double x1 = 1;
                while(Math.Abs(x1 - x0) >= 1e-5)
                {
                    x0 = x1;
                    x1 = x0 - ((x0 * x0 * x0 + 2 * x0 * x0 + 3 * x0 + 4) / (3 * x0 * x0 - 4 * x0 + 3));
                }
                return x1;
            }

    结果:

    牛顿迭代法:

    7、输入10个学生5门课的成绩,用函数实现下列功能:

    1)计算每个学生的平均分;

    2)计算每门课的平均分;

    3)找出所有50个分数中最高的分数所对应的学生和课程;

    4)计算平均分方差:f=(1/n)∑xi2-((∑xi)/n)2,其中xi为某一学生的平均分。

    主要代码:

     1         static void Main(string[] args)
     2         {
     3             Program function = new Program();
     4             string[] name = new string[10];
     5             for (int i = 0; i < 10; i++)
     6             {
     7                 Console.Write("请输入姓名:");
     8                 name[i] = Console.ReadLine();
     9             }
    10             Console.WriteLine();
    11             string[] classes = new string[] { "语文", "数学", "英语", "物理", "化学" };
    12             double[,] score = new double[10, 5];
    13             for (int i = 0; i < 10; i++)
    14             {
    15                 Console.WriteLine("请输入{0}的成绩", name[i]);
    16                 for (int j = 0; j < 5; j++)
    17                 {
    18                     Console.Write("{0}:", classes[j]);
    19                     score[i, j] = double.Parse(Console.ReadLine());
    20                 }
    21                 Console.WriteLine();
    22             }
    23             function.grade(name, classes, score);
    24             Console.ReadLine();
    25         }
    26         public void grade(string[] name, string[] classes, double[,] score)
    27         {
    28             //求每人的平均分。
    29             double[] averge = new double[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    30             for (int i = 0; i < 10; i++)
    31             {
    32                 double sum = 0;
    33                 for (int j = 0; j < 5; j++)
    34                 {
    35                     sum += score[i, j];
    36                 }
    37                 averge[i] = sum / 5;
    38                 Console.WriteLine("{0}的平均分为:{1:f1}分。", name[i], averge[i]);
    39             }
    40             Console.WriteLine();
    41             //求每门课的平均分
    42             double[,] mark = new double[5, 10];//定义一个新数组,用来接收score数组的转置。
    43             for (int i = 0; i < 5; i++)
    44             {
    45                 for (int j = 0; j < 10; j++)
    46                 {
    47                     mark[i, j] = score[j, i];
    48                 }
    49             }
    50             for (int i = 0; i < 5; i++)//求每门课的平均分
    51             {
    52                 double sum = 0;
    53                 double avg = 0;
    54                 for (int j = 0; j < 10; j++)
    55                 {
    56                     sum += mark[i, j];
    57                 }
    58                 avg = sum / 10;
    59                 Console.WriteLine("本班的{0}的平均分为:{1:f1}分。", classes[i], avg);
    60             }
    61             Console.WriteLine();
    62             //求最高分,并确定是哪个学生的哪门课的分数
    63             double hight = score[0, 0];
    64             int c = 0, r = 0;
    65             for (int i = 0; i < 10; i++)
    66             {
    67                 for (int j = 0; j < 5; j++)
    68                 {
    69                     if (score[i, j] > hight)//比较大小,只留下大值。
    70                     {
    71                         hight = score[i, j];
    72                         r = i;
    73                         c = j;
    74                     }
    75                 }
    76             }
    77             Console.WriteLine("最高分为{0:f1},是{1}的{2}成绩。", hight, name[r], classes[c]);
    78             Console.WriteLine();
    79             //求平均分的方差
    80             double variance = 0, sum1 = 0, sum2 = 0;
    81             for (int i = 0; i < 10; i++)
    82             {
    83                 sum1 += averge[i] * averge[i];
    84                 sum2 += averge[i];
    85             }
    86             variance = sum1 / 10 - (sum2 / 10) * (sum2 / 10);
    87             Console.WriteLine("每人平均分方差为{0:f2}。", variance);
    88         }

    结果:

  • 相关阅读:
    highlight testing
    Oracle内部错误:ORA07445[_memcpy()+52] [SIGSEGV]一例
    Welcome to Nexus S?
    Script:AWR Trending
    Exadata上的分页查询性能测试
    Mysql:日志管理:汇总
    Oracle 11gR2:40几个初始化参数的有效枚举值list
    Oracle:11gR2的安装后看”基本的初始化参数“
    Linux:sed:面向字符流(行)的编辑器
    Sqlite:学习下
  • 原文地址:https://www.cnblogs.com/bosamvs/p/5493220.html
Copyright © 2011-2022 走看看