一、类型转换
string s = Console.ReadLine();
int numbers = Convert.ToInt32("4");
第二行代码要用int 类型的变量来接收,也可以说,这个方法的返回值是int类型的
若想要把用户输入的字符串(string)转换成double类型的
double douNum = double.Parse("45.5");//返回值是double类型的
把用户输入的字符串(string)转换成int类型的int.tryParse
int intNum =0;
bool result = int.tryParse(Console.ReadLine(),out intNum);
第二行代码在尝试将 用户输入的字符串 转换成 int类型 的数据
若result 结果为 true,则说明转换成功
若result 结果为false,则说明转换失败
这行代码不会出现异常
实例——一次语文测试后,老苏让班长统计每一个学生的成绩并计算全班(全班共5人)的平均成绩,然后把所有成绩显示出来
Console.WriteLine("请输入班级人数");
int number = 0;
int sum =0;
if (int.TryParse(Console.ReadLine(), out number))
{
int[] scores = new int[number];//声明一个数组用来存放成绩,一个人一个人的输如
for(int i=0; i<scores.Length; i++)
{
Console.WriteLine("请输入第{0}个人的成绩", i+1);
scores[i] = int.Parse(Console.ReadLine());
//把用户输入的成绩转换为int类型并存到数组中
sum += scores[i];//求和
}
Console.WriteLine("总成绩为{0},平均成绩为{1}",sum, sum/scores.Length);
}
else
{
Console.WriteLine("输入有误,");
}
Console.ReadKey();
☺
二、数组相关知识
1、求最大值
一般就最大值用临时变量,每一个值都和临时变量作比较
除此以外,当所比较的值中有负数时,temp的初始值不能为0
int[] numbers = new int[] {-1,-98,-56};
int temp = int.MinValue;//当所比较的值中有负数时,temp的初始值不能为0
for(int i = 0; i < numbers.Length; i++) //numbers 的 length 指的就是数组的长度
{
if(numbers[i] > temp)//每一个值都和临时变量作比较
{
temp = numbers[i];//若大于临时变量,则将该值赋给temp
}
}
Console.WriteLine("最大值为{0}", temp);
Console.ReadKey();
2、求最大值和最小值
int[] nums = new int[] {2,43,2,65,-23,76,87,32,-90};
int min = int.MaxValue;//最小值
int max = int.MinValue;//最大值
for (int i = 0; i < nums.Length; i++)
{
if(nums[i]>max)
{
max = nums[i];//求最大值
}
if(nums[i]<min)
{
min = nums[i];//求最小值
}
}
Console.WriteLine("最大值为{0}",max);
Console.WriteLine("最小值为{0}",min);
Console.ReadKey();
3、数组的排序
①冒泡排序
int[] nums = new int[] {98,54,54,322,43,23};
int temp = 0;
for(int j = 0;j < nums.Length - 1; j++)
{
for(int i = 0; i < nums.Length - 1 - j; i++)
{
if(nums[i]>nums[i + 1])
{
temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for(int i = 0; i < nums.Length; i++)
{
Console.Write(nums[i] + "\t");//将数组再遍历一遍,把数都显示出来就可以了
}
Console.ReadKey();
②正常排序
int[] nums = new int[] {2,43,3,1,76};
Array.Sort(nums);//Array 是类,Sort方法,进行排序
// Array.Reverse(nums);//这个方法是 反转,将前一步的结果进行反转
//从小到大排序
for(int i = 0; i < nums.Length - 1; i++)
{
Console.Write(nums[i] + "\t");
}
Console.ReadKey();
Array.Sort(nums);//Array 是类,Sort方法,将nums数组中的数进行排序
Array.Reverse(nums); 这个方法是 反转,将前一步的结果进行反转
③倒着输出——(快捷键-----forr)
int[] nums = new int[] {2,43,3,1,76};
//倒着输出
for(int i = nums.Length - 1; i >= 0; i--)
{
Console.Write(nums[i] + "\t");
}
Console.ReadKey();
4、数组的联系
计算一个整数数组的所有元素的和
static void Main(string[] arge)
{
int[] numbers = new int[] {1,2,3,4};
Program.SumArray(numbers);
Console.ReadKey();
}
public static void SumArray(int[]nums)
{
int sum = 0;//求和
for(int i = 0; i<nums.Length; i++)
{
sum += nums[i];
}
Console.WriteLine("和为{0}", sum);
}
5、数组的联系扩展
从一个整数数组中取出最大的整数,最小整数,总和,平均值 & 改方法后的代码
static void Main(string[] args)
{
//从一个整数数组中取出最大的整数,最小整数,总和,平均值
//int[] nums = new int[] { -12, 90, -56, 89,0,345 };
//int max = int.MinValue;//求最大值的变量
//int min = int.MaxValue;//求最小值的变量
//int sum = 0;//求和
//for (int i = 0; i < nums.Length; i++)
//{
// if (nums[i]>max)//求最大值
// {
// max = nums[i];
// }
// if (nums[i]
// {
// min = nums[i];
// }
// sum += nums[i];//求和
//}
//Console.WriteLine("和是{0},最大值是{1},最小值是{2},平均值是{3}",sum,max,min,sum/nums.Length);
//Console.ReadKey();
Program.ArraySort();//调用类中的方法
Console.ReadKey();
}
//改方法
public static void ArraySort()
{
int[] nums = new int[] {-12,90,-56,89,0,345};
int max = int.MaxValue;//求最大值的变量
int min = int.MinValue;//求最小值的变量
int sum =0;//求和
for(int i = 0;i < nums.Length; i++)
{
if(nums[i]> max)//求最大值
{
max = nums[i];
}
if(nums[i]<min)//求最小值
{
min = nums[i];
}
sum += nums[i]; //求和
}
}
6、字符串数组练习
①数组里面都是人的名字,分割成:例如:老杨|老苏|老邹
(老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马)
static void Main(string[] args)
{
string[] names = new string[] {"老杨","老苏","老邹","老虎","老牛","老蒋", "老王","老马"};
string str = "";
//减 1 的原因是 最后得老马 不需要 |,因此循环的时候,就不循环到 老马 了
for(int i = 0; i < names.Length - 1; i++)
{
str += names[i] + "|";
}
//最后一个 老马后面不需要|
Console.WriteLine(str + names[names.Length - 1]);
Console.ReadKey();
}
改方法
static void Main(string[] args)
{
string[] names = new string[] {"老杨","老苏","老邹","老虎","老牛","老蒋", "老王","老马"};
//实现只要传过来一个数组,都可以进行拼接,则括号内需要写参数
Program.AddName(names);
Console.ReadKey();
}
public static void AddName(string[]names)
{
string str = "";
for(int i = 0; i < names.Length - 1; i++)
{
str += names[i] + "|";
}
Console.WriteLine(str + names[names.Length - 1]);
}
7、数组反转练习
将一个字符串数组的元素的顺序进行反转
{“我”,“是”,“好人”} {“好人”,“是”,“我”},第1个和第length-i-1个进行交换
①简单方法
string[] text = {"我", "是", "好人" };
for(int i = text.Length -1, i >= 0, i--)
{
Console.Write(text[i] + "\t");
}
Console.ReadKey();
②稍微高级
string[] text = {"我", "是", "好人" };
Array.Reverse(text);//对数组进行反转
for(int i = 0, i < text.Length; i++)
{
Console.Write(text[i] + "\t");
}
Console.ReadKey();
③更加高级
string[] text = {"我", "是", "好人" };
string temp = "";
for(int i = 0; i < text.Length/2; i++)
{
temp = text[i];
text[i] = text[text.Length - i - 1];
text[text.Length - 1 - i] - temp;//用临时变量进行交换
}
for(int i = 0; i < text.Length; i++)
{
Console.Write(text[i] + "\t");
}
Console.ReadKey();