数组
值类型:
int,bool,枚举,结构体
引用类型:
字符串,数组
数组在栈中存地址,堆中放内容。
排序方式
冒泡排序
int[] a = { 3, 5, 2, 4, 6, 0, 1 };
for(int i=0;i<a.Length - 1; i++)
{
for(int j=0;j<a.Length - i - 1; j++)
{
if (a[j] > a[j + 1])
{
int tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
for(int i = 0; i < a.Length; i++)
{
Console.Write(a[i]+" ");
}
选择排序
int[] a = { 5, 1, 3, 2, 0 };
for(int i=0;i<a.Length - 1; i++)
{
int q = i;
int num = a[i];
for(int j = i + 1; j < a.Length; j++)
{
if (num > a[j])
{
q = j;
num = a[j];
}
}
int tmp = a[i];
a[i] = num;
a[q] = tmp;
}
for(int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
插入排序
int[] a = { 5, 1, 3, 2, 0 };
for(int i = 0; i < a.Length-1; i++)
{
for(int j = i+1; j>0; j--)
{
if (a[j] < a[j - 1])
{
int tmp = a[j];
a[j] = a[j - 1];
a[j - 1] = tmp;
}
}
}
for(int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
二维数组
类型[,]数组名=new 雷星[常量表达式1,常量表达式2];
寻找最大值
int[,] td = new int[3, 4] {
{2,25,6,8},
{40,12,30,16},
{18,20,22,24}
};
int num = td[0, 0];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (num < td[i, j])
{
num = td[i, j];
}
}
}
Console.WriteLine(num);
foreach的用法
查找字符串中某个字母的个数
string str = "sfsgfgergqerr";
int sum = 0;
foreach (char x in str)
{
if (x == 's')
{
sum++;
}
}
Console.WriteLine(sum);
数组所有元素之积
int[] a = new int[5] { 1, 2, 2, 4, 5 };
int sum = 1;
foreach (int x in a)
{
sum = sum * x;
}
Console.WriteLine(sum);