(使用指標作為引數解決問題)
編寫c語言**,實現以下功能:
有5名學生,每人有三門考試成績(語文、數學、英語),計算每個學生的平均成績,查詢有一門及以上課程不及格的學生,輸出不及格學生的課程成績(含學號和三門課成績和平均成績)。
#include
void
main()
}search
(s);
//傳遞的慘數字陣列的位址,也就時行位址
}void
search
(int
(*p)[3
])printf
("平均成績為:\n");
printf
("%3.2lf"
, sum /
3.0)
; sum =0;
printf
("\n");
}}}
1.該題主要的難點在於理解void search(int (*p)[3]);這個函式如何傳遞引數,記住如果是 int (p)[n]這種形式的話,指標變數p儲存的是行的位址,傳遞時必須對應,其次的話要理解,2為陣列名其實就是首行的位址,即a等於&a.
2.第2個重點就是你傳遞引數後,如何呼叫陣列元素,方法為:((p+i)+j),或者你也可以使用p[i][j]的形式。
3.區別於void search(int *p);的形式,對應於這種形式的函式引數,應該是search(*p);void search(int *p)中p指代的位址應該是二維陣列元素的位址
C 二維陣列作函式引數
變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...
C 二維陣列作函式引數
變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...
C 二維陣列作函式引數
變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...