C#基础笔记

本文通过C#展示了循环结构如for、while的应用,包括寻找完数、素数、水仙花数等。同时,介绍了数组的一维、二维及交错数组操作,如排序、求最大最小值。还讲解了字符串的基本操作和StringBuilder类的使用,以及面向对象的简单应用。此外,文章涉及ArrayList集合的使用和方法。
摘要由CSDN通过智能技术生成

C#基础

循环

for循环
一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6的因子为1、2、3,而6=1+2+3,因此6是“完数”。输出1000以内的所有完数。
int i, n, sum;
            for (i = 2; i <= 1000; i++)
            {
                sum = 0;//清零
                for (n = 1; n < i; n++)
                {
                    if (i % n == 0)
                        sum = sum + n;
                }
                if (sum == i)
                    Console.WriteLine(i + "是完数");
            }
嵌套循环求素数
int i;
            int j;
            for (i = 100; i <= 200; i++)
            {
                for (j = 2; j < i; j++)
                { 
                if(i%j==0)
                        break;
                }
                if(j==i)
                    Console.WriteLine(i+ "是素数");
            }
把1~100之间不能被3整除的数输出。
 for (int i = 1; i <= 100; i++)
            {
                if (i % 3 == 0)
                    continue;
                else
                    Console.WriteLine(i);    
             }
输入一个整数n,判断该数是否素数。
Console.Write("请输入整数NUM:");
            int num = Convert.ToInt32(Console.ReadLine());
            int i;
            for (i = 2; i < num; i++)
            {
                if (num % i == 0)
                    break;
            }
            if (i == num)
                Console.WriteLine("{0}是素数",num);
            else
                Console.WriteLine("{0}不是素数",num);
Do …While
使用Do …While语句编写程序,迭代法求平方根。已知求平方根的迭代公式为:

x n + 1 = ( x n + a / x n ) / 2 x n+1 = (xn + a / xn) / 2 xn+1=(xn+a/xn)/2

要求前后两次求出的差的绝对值小于10-5。
double xn1;
            double xn = 3;
            Console.Write("请输入a:");
            int a = Convert.ToInt32(Console.ReadLine());
            xn1 = (xn + a / xn) / 2;
            do
            {
                Console.WriteLine(xn1);
                xn = xn1;
                xn1 = (xn + a / xn) / 2;
            } while (Math.Abs(xn1 - xn) > 0.000001);
使用do…while语句编写程序:请输入介于0~100之间的整数,设置要猜的数值为67,根据键盘输入的数字跟被猜数字进行比较,输出猜数字次数以及是否猜中。如果没猜中,对输入数字跟被猜数字的大小比较输出。
 int num ;//floor向下取整
            Random rand = new Random();
            num = rand.Next(0, 101);
            int count = 0;
            bool guess = false;
            do
            {
                Console.Write("请输入介于0~100之间的整数:");
                int num2 = Convert.ToInt32(Console.ReadLine());
                count++;
                if (num2 > num)
                    Console.WriteLine("第{0}次,{1}太大了",count, num2);
                else if (num2 < num)
                         Console.WriteLine("第{0}次,{1}太小了",count, num2);
                else
                {
                    Console.WriteLine("第{0}次,猜对了",count, num2);
                    guess = true;
                }
            }
            while (!guess); 
打印出所有的“水仙花数”, “水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方
int i, x, y, z;
            for (i = 100; i < 1000; i++)
            {
                x = i % 10;
                y = (i / 10) % 10;
                z = i / 100;
                if (i == x * x * x + y * y * y + z * z * z)
                {
                    Console.WriteLine("{0}是水仙花数", i);
                }   
             }

数组

一维数组
一维数组定义4种方法
int[] arr = { 1, 2, 3, 4, 5 };
            int[] arr2 = new int[5] { 1, 2, 3, 4, 5 };
            int[] arr3 = new int[] { 1, 2, 3, 4, 5 };
            int[] arr4;
            arr4 = new int[5] { 1, 2, 3, 4, 5 };
从键盘上输入10个数,输出最大值和最小值
int[] arr = new int[10];
            Console.WriteLine("请输入十个数");
            for (int i = 0; i <= 9; i++)
            {
                arr[i] = int.Parse(Console.ReadLine());
            }
            int temp = 0;
            int sum = 0;
			//以下循环为先对数组进行降序(冒泡排序),再将第一个值为最大值,最后一个为最小值即可
            for (int i = 0; i < 9; i++)
            {
                for (int j = 0; j < 9 - i; j++)
                {
                    if (arr[j] < arr[j + 1])
                    {
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
                sum += arr[i];
            }
            Console.WriteLine("最大的数为" + arr[0]);
            Console.WriteLine("最小的数为:" + arr[9]);
            Console.ReadLine();
给定5个数:13、25、14、7、8,将它们存储在一个数组中,按“冒泡”排序法将其按从小到大的顺序输出。
法一:
int[] arr = new int[5] { 13, 25, 14, 7, 8 };
            int temp = 0;


            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4 - i; j++)
                {
                    if (arr[j] < arr[j + 1])
                    {
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }


            }
            foreach (int a in arr)
                Console.Write(a + " ");
法二:
 int[] arr = new int[] { 25, 14, 13, 8, 7 };
             int temp;
             for (int i = 0; i < 4; i++)
             {
                 for (int j = 0; j < 4 - i; j++)
                 {
                     if(arr[j]>arr[j+1])
                     {
                         temp = arr[j];
                         arr[j] = arr[j + 1];
                         arr[j + 1] = temp;
                     }

                 }
             }
             foreach (int a in arr)
                 Console.Write(a + " ");
从键盘输入学生数n, 依次输入学生姓名并遍历输出。
 Console.Write("n:");
            int n = Convert.ToInt32(Console.ReadLine());
            string[] student = new string[n];
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("请输入第{0}个学生姓名:", i + 1);
                student[i] = Console.ReadLine();
            }
            Console.WriteLine("\n输入结束,你输入的学生姓名如下:");
            foreach (string name in student)
            {
                Console.WriteLine(name);
            }
Rank就是维数
/*首先这是一个数组中的数组,就是说数组中包含数组
*string[,] abcd = new string[2, 4] 很明显这是一个2*4的数组
*就是第一个数组中包含4个元素,第二个数组也包含4个元素,第三个数组也包含4个元素
*/
//Rank就是维数 这里代表的就是[2,4]中的2 下面的循环是依次遍历每一个数组中包含的数组
for (int i = 0; i < abcd.Rank; i++)
{
//GetUpperBound方法 获取 Array 的指定维度的上限。下面这段代码就是遍历每个数组中的没一个元素
for (int j = 0; j <= abcd.GetUpperBound(abcd.Rank - 1); j++)
二维数组
 int[,] score = { {1,2,3, }, {4,5,6 } };
            int row = score.GetLength(0);
            int coloum = score.GetLength(1);
            for (int i = 0; i < row; i++)
            { 
            for(int j=0;j<coloum;j++)
                {
                    Console.Write(score[i,j]+" ");
                }
                Console.WriteLine();
            }
int[,] score = { { 1, 2, 3, }, { 4, 5, 6 } };
            // int row = score.GetLength(0);
            //int coloum = score.GetLength(1);
            for (int i = score.GetLowerBound(0); i <= score.GetUpperBound(0); i++)
            {
                for (int j = score.GetLowerBound(1); j <=score.GetUpperBound(1); j++)
                {
                    Console.Write(score[i, j] + " ");
                }
                Console.WriteLine();
            }
将一个矩阵的行和列元素互换,存到另一个矩阵中
int[,] A = { { 1, 2, 3, }, { 4, 5, 6 } };
            int[,] B = new int[3, 2];
            for (int i = 0; i < A.GetLength(0); i++)
            {
                for (int j = 0; j <A.GetLength(1); j++)
                {
                    B[j,i]=A[i,j];
                }
            }
            for (int i = 0; i < B.GetLength(0); i++)
            {
                for (int j = 0; j < B.GetLength(1); j++)
                    Console.Write(B[i,j] + " ");
                    Console.WriteLine();
            }
假设某个班有三名学生,每个学生有四门课程,输入学生各科的成绩,并求每个学生的平均成绩
int[,] score = new int[3, 4];
            int sum;
            for (int i = 0; i < score.GetLength(0); i++)
            {
                for (int j = 0; j < score.GetLength(1); j++)
                {
                    Console.Write("请输入第{0}个学生的第{1}门成绩:", i + 1,j+1) ;
                    score[i, j] = Convert.ToInt32(Console.ReadLine());
                }
              
            }
            for (int i = 0; i < score.GetLength(0); i++)
            {
                sum = 0;
                for (int j = 0; j < score.GetLength(1); j++)
                    sum += score[i, j];
                Console.WriteLine("第{0}个学生的平均成绩为{1}", i + 1,sum/4) ;
            }
交错数组
string[][] arr = new string[4][];
            arr[0] = new string[] { "1", "3", "5", "7", "9", "13" };
            arr[1] = new string[] { "0", "2" };
            arr[2] = new string[3];
            arr[2][0] = "5";
            arr[3] = new string[5];
            arr[3][4] = "32";
            foreach (string[] hang in arr)
            {
                foreach (string lie in hang)
                    Console.Write("{0,4}", lie);
                Console.WriteLine();
            }
编写程序,打印出直角杨辉三角形
 Console.WriteLine("请输入长度:");
        int length = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        int[,] array = new int[length,length];
        for (int i = 0; i < length; i++) { // 循环打印杨辉三角,length行
            
            for (int j = 0;j<=i; j++) //注意:j<=i, 因为第1行有1列,第2行有2列,第3行有3列。。。
            {
                if(j == 0 ||i==j)  //第一列和最后一列
                {
                    array[i, j] = 1; //值为1
                }
                else
                {
                    array[i, j] = array[i - 1, j - 1] + array[i - 1, j]; //中间列的值 = 上一行和它所在列-1的值 + 上一行和它所在列的值
                }
                Console.Write(array[i, j].ToString() + " "); //打印值
            }
            Console.WriteLine();//每行打印完所有值后换行
        }

字符串

string s = "C# is my favourite language";
            for (int index = 0; index < 8; index++)
            {
                Console.WriteLine("[{0}]= 字符{1}",index,s[index]);
            }
            Console.WriteLine(s.Length);
字符串常用方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nw57qJ6g-1647169775761)(%E5%AD%97%E7%AC%A6%E4%B8%B2.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uGIHgZHr-1647169775763)(CompareTo.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIzSxtdS-1647169775764)(Split.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OAknrc5r-1647169775765)(Insert.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2ateIBJ-1647169775766)(Replace.png)]

查找字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lRxMLrI4-1647169775767)(select%20string.png)]

StringBuilder类
常用属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VD1n2iVY-1647169775768)(StringBuilder%E7%B1%BB%E5%B8%B8%E7%94%A8%E5%B1%9E%E6%80%A7.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dcQ07067-1647169775768)(Append.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FaZzpzqL-1647169775769)(StringBuilder%E7%B1%BB%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKRUAplr-1647169775770)(StringBuilder%E7%B1%BB%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E8%AF%AD%E6%B3%95.png)]

StringBuilder和String区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PscMsrW2-1647169775771)(StringBuilder%E5%92%8CString%E5%8C%BA%E5%88%AB.png)]

面向对象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Student
    {
        string sno;
        string sname;
        int age;

        public string Sno { get => sno; set => sno = value; }

        public void SetValue(string _sno,string _sname,int _age)
        {
            Sno = _sno;
            sname = _sname;
            age = _age;
        }
        public void GetValue()
        {
            Console.WriteLine("Sno is:" + Sno);
            Console.WriteLine("Sname is:" + sname);
            Console.WriteLine("Age is:" + age);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Student stu = new Student();
            stu.SetValue("123456790","Eagle",20);
            stu.GetValue();
        }
    }
}

集合

ArrayList用法
ArrayList可以存放任何数据类型的数据
ArrayList aList = new ArrayList();
            aList.Add("a");
            aList.Add("123");
            aList.Add("12.345");
            foreach (object o in aList)
                Console.WriteLine(o);
ArrayList方法
string[] args)
        {
            Student stu = new Student();
            stu.SetValue("123456790","Eagle",20);
            stu.GetValue();
        }
    }
}

集合

ArrayList用法
ArrayList可以存放任何数据类型的数据
ArrayList aList = new ArrayList();
            aList.Add("a");
            aList.Add("123");
            aList.Add("12.345");
            foreach (object o in aList)
                Console.WriteLine(o);
ArrayList方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

将暮未暮缓缓归。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值