【問題1】 一元錢換為1、2、5分的硬幣,有多少種兌換方?
【本題要點分析及參***】
對各種可能情況進行一一測試。這是實現迴圈的一種方式(窮舉法)。但實際上只有只有餘額才能兌換成其它面值的硬幣 */
main()
/*注意換行的控制和每列的對齊*/
【問題3】 某鐵路線上有10個站,需要準備多少種客票?
main()
, },b=a[0],*p;
printf("old b: b.num:%ld/tb.score:%f/n",b.num,b.score);
/*顯示結構體變數b的成員的原有值*/
funvr(b);
/*驗證第一種情況,觀察並分析結果,看結構體變數作為函式引數時,形參結構體變數成員的值的改變能影響實參結構體變數的成員的值,以下為輸出呼叫函式funvr(b)之後的結果值*/
printf("call funvr() new b: b.num:%ld/tb.score:%f/n ",b.num,b.score);
funpr(&b); /*將結構體變數的指針對作為函式的引數*/
printf("call funpr() new b: b.num:%ld/tb.score:%f/n ",b.num,b.score);
/*輸出結構體陣列a元素的原來的成員值*/
printf("old a[0]:a[0].num:%ld/ta[0].score:%f/n ",a[0].num,a[0].score);
printf("old a[1]:a[1].num:%ld/ta[1].score:%f/n ",a[1].num,a[1].score);
/*將結構體陣列a作為函式的引數,然後再輸出其元素的成員的值,已經被修改了*/
funar(a);
printf(" new a[0]:a[0].num:%ld/ta[0].score:%f/n ",a[0].num,a[0].score);
printf("new a[1]:a[1].num:%ld/ta[1].score:%f/n ",a[1].num,a[1].score);
【題例分析】
1)結構體變數作為函式引數[實參與形參]時,形參結構體變數成員值的改變不影響對應的實參構體變數成員值的改變。
2)結構體陣列或結構體指標變數作為函式引數[實參與形參]時,形參結構體陣列元素[或形參結構體指標變數指向的變數]成員值的改變將影響對應的實參構體陣列[或實參結構體指標變數指向的變數]成員值的改變。
3)結構體變數可作為函式的引數,函式可返回一結構體類資料
4)p=&b; 使結構體指標變數p指向結構體變數b的空間。
p->num:表示通過指標變數引用結構體變數b的成員num
5)p=a;或p=&a[0];將結構體指標變數指向結構體陣列a。則:
①p->num:表示通過指標變數引用結構體陣列元素的成員num的值。
②p->num++:表示通過指標變數先引用結構體陣列元素的成員num的值,再使該元素的成員num的值加1,先引用其值然後其加1。
③++p->num:表示使指向的元素的成員num的值加1,再引用其值。
6)p=a;或p=&a[0];表示將結構體指標變數p指向結構體陣列a。
①(p++)->num:表示通過指標變數先引用結構體陣列元素 的成員num的值,再使指標變數本身加1,指標變數加1表示使指標變數指向結構體陣列的下乙個元素。
②(++p)->num:先使指標變數本身加1,先使使指標變數指向結構體陣列的下乙個元素,然後引用指標變數所指向的結構體陣列元素的成員num的值。
和結構體 結構體型別與結構體變數
結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合,叫做結構體。在c語言中,結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為變數 指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素...
結構體 結構體陣列
void test 函式遞迴呼叫 允許函式體裡再次呼叫函式本身 使用遞迴一定要有出口 long fact int n return n fact n 1 定義乙個新的資料型別 struct mypoint 結構體型別所占用的記憶體空間是最大資料型別的整數倍。因為結構體型別的變數在分配記憶體時有記憶體...
結構體 結構體陣列
struct 結構體型別名 型別名 成員名 型別名 成員名 先宣告結構體型別,再定義結構體變數名 宣告結構體型別,不分配空間 定義結構體型別變數,就要分配記憶體空間 作 者 hh 完成日期 2018年8月15日 版本號 v1.0 問題描述 結構體巢狀 賦值 輸出 輸入描述 程式輸出 include ...