结构体
1、概念:
结构体是写在main函数外的数据结构,由不同类型的数据组合成一个整体,这些组合在一个整体中的数据是互相联系的
2、声明方式:
struct 结构体名
{
成员变量(由类型名+成员名组成)
}
例:
public struct student//public是修饰符,可以不加,作用范围为整个命名空间 { public int Code;//定义变量,每一个变量叫做结构体的属性 public string Name; public string Sex; public int Age; public decimal Height; }
3、调用方法:
(1)初始化结构体(new一个)
(2)给结构体中的变量赋值
如:
//继续使用上面结构体的定义 student ss = new student(); ss.Code = 101; ss.Name = "zhangsan"; ss.Sex = "nan"; ss.Height =173;
4、用结构体对代码进行优化处理
----冒泡排序----
题目:输入学生个数,挨个输入姓名、身高、年龄,求平均年龄,然后按身高升序排出
思路:建立一个含有姓名、身高、年龄参数的结构体,再建立一个集合,通过for循环将每次初始化后的结构体类型带着三种数据放入集合中。
答案:
Console.WriteLine("输入学生个数:"); int n = int.Parse(Console.ReadLine()); ArrayList ar = new ArrayList();//建立集合填充数据 int sum =0; for (int i = 0; i < n; i++) { student ss = new student(); Console.Write("请输入姓名:"); ss.Name =Console.ReadLine(); Console.Write("请输入年龄:"); ss.Age = int.Parse(Console.ReadLine()); Console.Write("请输入身高:"); ss.Height = int.Parse(Console.ReadLine().Trim()); ar.Add(ss);//在集合中增加一个student类型的数据 sum = sum+ss.Age;//算总分 } for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { //建立中间值,将ar[i]、ar[j]强制转化为student的类型,然后判断身高 student s1 = (student)ar[i]; student s2 = (student)ar[j]; if(s1.Height<s2.Height) { ar[i] = s2; ar[j] = s1; } } } foreach (student a in ar) { Console.Write("姓名:" + a.Name); Console.Write("身高:" + a.Height); Console.Write("年龄:" + a.Age); Console.Write("\n"); }