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);