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