
{
int[] str = new int[5];
for (int i = 0; i < str.Length; i++)
{
str[i] = i;
Console.WriteLine(i);
}
//默认值为null null与""不一样
string[] st = new string[8];
//默认值为false
bool[] bl = new bool[9];
//数组的声明方式:
int[] One = new int[6];
int[] Two = { 2, 5, 6, 8, 9 };
//以下两种可以不记
int[] Three = new int[] { 3, 5, 7, 6 };
int[] Four = new int[3] { 1, 2, 3 };
Console.WriteLine("------------------");
#region 从一个整数数组中取出最大、最小的整数,以及总和 平均值
//int[] Five = { 8, 9, 5, 7, 2, 1, 3 };
int max = Five[0];
int min = Five[2];
//int max = int.MinValue;
//int min = int.MaxValue;
//int sum = 0;
//for (int i = 0; i < Five.Length; i++)
//{
// //1.代表数组中当前循环到的元素
// //2.代表数组中的每一个元素
// if (Five[i] > max)
// {
// max = Five[i];
// }
// if (Five[i] < min)
// {
// min = Five[i];
// }
// sum += Five[i];
//}
//Console.WriteLine("最大值时:{0},最小值是:{1},总和为:{2},平均值:{3}", max, min, sum, sum / Five.Length);
#endregion
#region 练习2:计算一个整数数组的所有元素的和
//int[] Five = { 8, 9, 5, 7, 6, 3, 2 };
//int sum = 0;
//for (int i = 0; i < Five.Length; i++)
//{
// sum += i;
//}
//Console.WriteLine(sum);
#endregion
#region 练习3: 数组里面都是人的名字,分割成: 例如: 老杨 | 老苏 | 老邹…”
//string[] str1 = { "老杨", "老苏", "老邹", "老虎", "老牛", "老王", "老马", "老蒋" };
//将每个元素都累加到一个字符串中,然后以|分割
string[] str1 = { "老杨", "老苏", "老邹", "老虎", "老牛", "老王", "老马", "老蒋" };
string str2 = null;
for (int i = 0; i < str1.Length-1; i++)
{
str2 +=str1[i]+"|";
}
Console.WriteLine(str2+str1[str1.Length-1]);
//string s = string.Join("|", str1);
//Console.WriteLine(s);
#endregion
#region 练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。
int[] Six = { -5, -6, -7, 0, 5, 3, 1 };
for (int i = 0; i < Six.Length; i++)
{
if (Six[i] > 0)
{
Six[i] += 1;
Console.WriteLine(Six[i]);
}
else if (Six[i] < 0)
{
Six[i] -= 1;
Console.WriteLine(Six[i]);
}
else
{
Console.WriteLine(Six[i]);
}
}
#endregion
#region 练习5:将一个字符串数组的元素的顺序进行反转。{“我”,“是”,”好人”}“好人”,”是”,”我”}。第i个和第length - i - 1个进行交换
string[] s = { "我", "是", "好人" };
for (int i = 0; i < s.Length/2; i++)
{
string temp = s[i];
s[i]= s[s.Length - 1 - i];
s[s.Length - 1 - i] = temp;
}
Console.WriteLine();
//排序之后得重新遍历一遍数组
for (int i = 0; i
二、冒泡排序
第一种:
class Program
{
static void Main(string[] args)
{
//int[] a = { 5, 6, 4, 2, 9, 1, 3 };
//for (int i = 0; i < a.Length-1; i++)
//{
// for (int j = 0; j < a.Length-1-i; j++)
// {
// if (a[j]>a[j+1])
// {
// int temp = a[j];
// a[j] = a[j + 1];
// a[j + 1] = temp;
// }
// }
//}
//foreach (object item in a)
//{
// Console.WriteLine(item);
//}
int[] array = { 5, 9, 4, 6, 3, -1, 0 };
MaoPaoSort(array);
foreach (var item in array)
{
Console.WriteLine(item);
}
}
private static void MaoPaoSort(int[] array)
{
for (int i = 0; i < array.Length - 1; i++)
{//先定义 是排好的 发生位置交换证明没有排好
bool isSort = true;//判断一下 如果需要交换位置的话就交换 不需要的话就跳出位置交换循环
for (int j = 0; j < array.Length - 1; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
isSort = false;
}
}
if (isSort)
{
break;
}
}
}
}
第二种:
class Program
{
static void Main(string[] args)
{
int[] array = { 2, 5, 9, 4, 6, 1, 3, 7, 8 };
//冒泡排序
MaoPaoSort(array);
//插入排序 InsertSort(array);
foreach (var item in array)
{
Console.Write(item + ",");
}
Console.ReadKey();
}
private static void MaoPaoSort(int[] array)
{
for (int j = 0; j < array.Length - 1; j++)
{
bool isSort = true;
for (int i = 0; i < array.Length - 1; i++)
{
if (array[i] > array[i + 1])
{
int tamp = array[i];
array[i] = array[i + 1];
array[i + 1] = tamp;
isSort = false;
}
}
if (isSort)
{
break;
}
}
}
}
三、插入排序
class Program
{
static void Main(string[] args) {
int[] array = new int[] { 1, 5, 6, 8, 7, 3, 4 };
InsertSort(array);
foreach (var item in array)
{
Console.Write(item);
}
Console.ReadKey();
}
private static void InsertSort(int[] array)
{
for (int i = 1; i < array.Length; i++)
{
int x = array[i];
bool isInsert = false;
for (int j = i - 1; j >= 0; j--)
{
if (array[j] > x)
{
array[j + 1] = array[j];
}
else
{
array[j + 1] = x;
isInsert = true;
break;
}
}
if (!isInsert)
{
array[0] = x;
}
}
}
}
四、方法的重载
what:方法名相同,参数列表的位置 顺序 类型不同
how:
class Program
{
static void Main(string[] args)
{
}
public static void Test(int a) { }
public static void Test() { }
public static void Test(string a) { }
public static void Test(string a,string b) { }
}
五、练习题
class Program
{
static void Main(string[] args)
{
#region MyRegion
#endregion
#region 水仙花数
//for (int i = 100; i < 1000; i++)
//{
// if (isSXH(i))
// {
// Console.WriteLine(i);
// }
//}
#endregion
#region 一个控制台应用程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的所有因子之和。例如6是完数,因为6=1+2+3。
//for (int i =1; i < 1000; i++)
//{
// if (isWS(i))
// {
// Console.WriteLine(i);
// }
//}
#endregion
#region 一个控制台应用程序,要求完成写列功能。
// 1)接收一个整数n。
//2)如果接收的值n为正数,输出1~n间的全部整数。
//3)如果接收的值n为负值,用break或者return退出程序。
//4)如何n为0的话 转到1继续接收下一个整数。
//Console.WriteLine("请输入一个整数");
//while (true)
//{
// int a = int.Parse(Console.ReadLine());
// if (a > 0)
// {
// for (int i = 1; i <= a; i++)
// {
// Console.Write(i + ",");
// }
// break;
// }
// else if (a == 0)
// {
// Console.WriteLine("继续输入整数");
// continue;
// }
// else
// {
// break;
// }
//}
#endregion
#region 要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
//Console.WriteLine("输入5个大写字母");
//A:
//string s = Console.ReadLine();
//for (int i = 0; i < s.Length; i++)
//{
// if (s[i]<'A'||s[i]>'Z'||s.Length!=5) 字符串本质是数组所以可以用s[i]来进行表示
// {
// Console.WriteLine("输入不对");
// goto A;
// }
//}
#endregion
#region 输出1~5的平方值,要求:用for语句实现。用while语句实现。用do-while语句实现。
//for (int i = 1; i <= 5; i++)
//{
// Console.WriteLine(i*i);
//}
//int i = 1;
//while ( i <= 5 )
//{
// Console.WriteLine(i * i);
// i++;
//}
//int i = 1;
//do
//{
// Console.WriteLine(i * i);
// i++;
//} while (i <= 5);
#endregion
#region 编写一个掷筛子100次的程序,并打印出各种点数的出现次数。
//Random ran = new Random();//随机的对象要放在循环外边,不然很容易出现一样的数
//int n1=0, n2=0, n3=0, n4=0, n5=0, n6=0;
//for (int i = 0; i < 100; i++)
//{
// int temp= ran.Next(1,7);
// switch (temp)
// {
// case 1:
// n1++;
// break;
// case 2:
// n2++;
// break;
// case 3:
// n3++;
// break;
// case 4:
// n4++;
// break;
// case 5:
// n5++;
// break;
// case 6:
// n6++;
// break;
// }
//}
//Console.WriteLine("1出现了{0}次,2出现了{1}次,3出现了{2}次,4出现了{3}次,5出现了{4}次,6出现了{5}次",n1,n2,n3,n4,n5,n6);
#endregion
#region 编程输出九九乘法表
//for (int i = 1; i <= 9; i++) 行
//{
// for (int j =1; j <=i; j++) 列
// {
// Console.Write("{1}*{0}="+i*j+"t",i,j);
// }
// Console.WriteLine();
//}
#endregion
#region 编程输出1000以内的所有素数
//for (int i = 2; i < 1000; i++)
//{
// if (isZS(i))
// {
// Console.WriteLine(i);
// }
//}
#endregion
#region 编程输出1~100中能被3整除但不能被5整除的数,并统计有多少个这样的数。
//int n = 0;
//for (int i = 1; i <= 100; i++)
//{
// if (i%3==0&&i%5!=0)
// {
// Console.WriteLine(i);
// n++;
// }
//}
//Console.WriteLine("一共{0}个满足条件的",n);
#endregion
#region 编写一个控制台程序,分别输出1~100之间的平方、平方根。
//for (int i = 1; i <= 100; i++)
//{
// Console.Write(i+"的平方:"+i*i+" ;");
// Console.WriteLine(i + "的平方根:"+Math.Sqrt(i));
//}
#endregion
#region 求出1~1000之间的所有能被7整除的数,并计算和输出每5个的和。
//int sum = 0;
//int num = 0;
//for (int i = 1; i <= 1000; i++)
//{
// if (i%7==0)
// {
// sum += i;
// num++;
// if (num==5)
// {
// Console.WriteLine(sum);
// sum = 0;
// num = 0;
// }
// }
//}
#endregion
#region 让用户输入两个整数,然后再输入0-3之间的一个数,0代表加法,1代表减法,2代表乘法,3代表除法,计算这两个数字的结果
//Console.WriteLine("输入第一个整数");
//int a = int.Parse(Console.ReadLine());
//Console.WriteLine("输入第二个整数");
//int b = int.Parse(Console.ReadLine());
//Console.WriteLine("0代表加法,1代表减法,2代表乘法,3代表除法");
//string s = Console.ReadLine();
//switch (s)
//{
// case "0":
// Console.WriteLine(a+b);
// break;
// case "1":
// Console.WriteLine(a- b);
// break;
// case "2":
// Console.WriteLine(a * b);
// break;
// case "3":
// Console.WriteLine(a / b);
// break;
// default:
// break;
//}
#endregion
#region 编写一个程序,对输入的4个整数,求出其中的最大值和最小值,并显示出来。
//Console.WriteLine("请输入第一个数");
//int a = int.Parse(Console.ReadLine());
//Console.WriteLine("请输入第二个数");
//int b = int.Parse(Console.ReadLine());
//Console.WriteLine("请输入第三个数");
//int c = int.Parse(Console.ReadLine());
//Console.WriteLine("请输入第四个数");
//int d = int.Parse(Console.ReadLine());
//int max = a;
//if (b > max) max = b;
//if (c > max) max = c;
//if (d > max) max = d;
//Console.WriteLine("最大值是:" + max);
//int min = a;
//if (b < min )min = b;
//if (c < min) min = c;
//if (d < min) min = d;
//Console.WriteLine("最小值是:" + min);
#endregion
Console.ReadKey();
}
private static bool isSXH(int a)
{//123
string s = a.ToString();
int sum = 0;
for (int i = 0; i < s.Length; i++)
{
int temp = int.Parse(s[i].ToString());
sum += temp * temp * temp;
}
return a == sum;
}
private static bool isWS(int a)
{
int sum = 0;
for (int i = 1; i < a; i++)
{
if (a % i == 0)
{
sum += i;
}
}
return a == sum;
}
//判断一个数是不是质数
private static bool isZS(int a)
{
for (int i = 2; i < a; i++)
{
if (a % i == 0)
{
return false;
}
}
return true;
}
}



