C#小练习08

1一维数组二维数组字符串中整数最大值及求和

1、形参为一维整型数组,求出一维数组元素的和以及最大值。

2、形参为二维整型数组,求出二维数组元素的和以及最大值。

3、输入字符串,例如“abcd17md358fy7dfd”,求出其中整数数值的和以及最大值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace CSharp_8_1
{
   class Program
    {
        static void OneDimension(int[] a)
       {
           int sum = 0;
           int Max = 0;
           for (int i = 0; i < a.Length; i++)
           {
                sum += a[i];
                if (Max < a[i])
                    Max = a[i];
                 }
           Console.WriteLine("一维数组元素的和为:{0},最大值为:{1}",sum,Max);
       }
       static void TwoDimension(int[,] a)
       {
           int sum = 0;
           int Max = 0;
           for (int i = 0; i < a.GetLength(0); i++)
           {
                for (int j =0; j < a.GetLength(1);j++)
                {
                    sum += a[i,j];
                    if (Max < a[i,j])
                        Max = a[i,j];
                }
           }
           Console.WriteLine("二维数组元素的和为:{0},最大值为:{1}",sum, Max);
       }
        static void InPutCharacter()
       {
           int[] a = new int[10] {0,0,0,0, 0, 0, 0, 0, 0, 0 };
           int num,flag =0,max=0,sum=0;
            string s;
            char[] sStr;
            Console.WriteLine("输入一串字符");
            s = Console.ReadLine();
           sStr= s.ToCharArray();
            num = s.Length;
            while (num > 0)
            {
                int rem=1;
                if (s[num - 1] <= '9'&& s[num - 1]>='0')
                   {
                    a[flag] = (int)s[num - 1] -'0';
                  
                    while (s[num - rem-1] <='9' && s[num - rem-1] >= '0')
                    {
                        a[flag] +=(int)Math.Pow(10, rem) * ((int)s[num - rem - 1] - '0');
                        rem++;
                    }
                    flag++;
                   }
              num-=rem ;
            }
   for (int i = 0; i < a.Length; i++)
            {
                sum += a[i];
                if (a[i] > max)
                    max = a[i];
            }
  Console.WriteLine("字符串中最大的数为:{0} 整数的和:{1}",max,sum);
       }
       static void Main(string[] args)
       {
           int[] a = new int[10] { 25,45,65,55,47,54,88,45,75,15};
           int[,] b = new int[3,3] {{25,56,45},{45,26,15},{78,51,26} };
           OneDimension(a);
           TwoDimension(b);
           InPutCharacter();
       }
    }
}

2.时间类打印函数增加时间函数

定义一个时间类,该类包含时、分、秒字段与属性,并具有将时间增加n秒,n分,n时的方法,具有打印显示时、分、秒的方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace CSharp_8_2
{
    class Time
    {
       static private int Hour = 12;
       static private int Minute = 35;
       static private int Second = 20;
       static void Add()
       {
           int h, m, s;
           string str;
           Console.WriteLine("请输入形如:2:3:4 进行增加时:分:秒");
           str = Console.ReadLine();
           try
           {//格式控制
                string[] sArray = str.Split(newchar[] { ':' });
                Hour += int.Parse(sArray[0]);
                Minute += int.Parse(sArray[1]);
                Second += int.Parse(sArray[2]);
                Second = Second % 60;//保证 时分秒 进位正确 显示正确
                s = Second / 60;
                Minute = (Minute + s) % 60;
                m = (Minute + s) / 60;
                Hour = (Hour + m) % 24;
                Print(1);
           }
           catch (Exception ex)
           {
                Console.WriteLine("输入格式不正确请重新运行");
                Console.WriteLine(ex.Message);
           }
       }
       static void Print(int flag)
       {
           if (flag == 1)
           {
                Console.WriteLine("时间重置为:{0}:{1}:{2}", Hour,Minute, Second);
           }
           else
                Console.WriteLine("默认时间为:{0}:{1}:{2}", Hour,Minute, Second);
       }
       static void Main(string[] args)
       {
           Print(0);//打印时间
           Add();//增加时间
       }
 
 
    }
 
}

3.四名学生两门成绩统计平均成绩及不合格成绩

假设一个班有4名学生,学习两门课程,编写程序实现如下功能:

(1)调用函数Input(),输入者4个学生的学号和成绩;

(2) 调用函数Average(),返回者4个学生2门课的平均成绩,在主函数中输出;

(3)调用函数NoPass(),返回所有不及格的学生的学号,在主函数中输出;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace CSharp_8_3
{
   class Program
    {
       static void Input(int[,] a, int[] b)
       {
           
           Console.WriteLine("请输入四名学生的学号以空格隔开");
           string s=Console.ReadLine();
 
           string[] str = s.Split(new char[]{' '});
           Console.WriteLine("四名学生的学号分别为:");
           for (int i = 0; i < b.Length; i++)
           {
                b[i] = int.Parse(str[i]);
           }
           foreach (var item in str)
           {
 
               Console.Write("{0,4}",item);
           }
           Console.WriteLine("\n请输入第一门课的成绩:(空格隔开)");
           string first = Console.ReadLine();
           string[] firststr = first.Split(new char[] { ' ' });
           for (int i = 0; i < a.GetLength(1); i++)
           {
                a[0,i] =int.Parse(firststr[i]);
           }
           Console.WriteLine("\n请输入第二门课的成绩:(空格隔开)");
           string second = Console.ReadLine();
           string[] secondstr =second.Split(new char[] { ' ' });
           for (int i = 0; i < a.GetLength(1); i++)
           {
                a[1, i] =int.Parse(secondstr[i]);
           }
           Console.WriteLine("恭喜你 成绩录入成功!");
          
          
       }
       static void Average(int[,] a,int[] b)
       {
           for (int i = 0; i < b.Length; i++)
           {
                Console.WriteLine("\n学生学号为:{0,4}的同学的两门课平均成绩为:{1,4}",b[i],1.0*(a[0,i]+a[1,i])/2);
           }
       }
        static void NoPass(int[,] a, int[] b)
       {
           for (int i = 0; i < a.GetLength(0); i++)
           {
                for (int j = 0; j <a.GetLength(1); j++)
                {
                    if (a[i,j]<60)
                    {
                       Console.WriteLine("学号为{0,10}的同学成绩不及格",b[j]);
                    }
                }
           }
       }
       static void Main(string[] args)
       {
           int[,] a = new int[2, 4] { { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };
           int[] b = new int[4] { 0, 0,0, 0 };
           Input(a, b);//录入
           Average(a, b);//平均值
           NoPass(a, b);//判断
       }
    }
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值