系列文章《C語言經典100例》持續創作中,歡迎大家的關注和支持。
喜歡的同學記得點贊、轉發、收藏哦~
後續C語言經典100例将會以pdf和代碼的形式發放到公衆号
歡迎關注:計算廣告生态 即時查收
1 題目函數:search()
功能:查找成績不及格的學生
描述:有 4 名學生的成績,找出至少有一科不及格的學生,并将成績列表輸出(規定60以下為不及格)
目标:重點理解 int (*p)[N] 的使用方法
2 思路
int*p[5] 和 int(*p)[5] 的區别
#include <stdio.h>
void search(float (*p)[4], int n) {
printf("序号為 %d 的學生的成績:\n", n);
for (int i = 0; i < 4; i) {
printf("%5.2f ", *(*(p n) i));
}
}
int main(int argc, char const *argv[]) {
float score[3][4]={{60,75,82,91},{75,81,91,90},{51,65,78,84}};
search(score, 2); // 計算得出序号為 2 的學生的成績
getchar();
}
~~~~~~~~~~~操作結果~~~~~~~~~~~~
$ gcc ex022-1.c -o demo
./yaojianguodeMacBook-Pro:C語言100題集合代碼 yaojianguo$ ./demo
序号為 2 的學生的成績:
51.00 65.00 78.00 84.00
#include<stdio.h>
#include<stdlib.h>
#defineN5
/**
函數:search()
功能:查找成績不及格的學生
描述:有4名學生的成績,找出至少有一科不及格的學生,并将成績列表輸出(規定60以下為不及格)
**/
int*search(int(*p)[N]){
int*pt=*(p 1);
for(inti=0;i<4; i){
if(*(*(p 0) i)<60){//這塊可以寫成*(*p i)<60,也就是平常看到了*(*(p m) n))來取到二維數組中列向的值
pt=*p;
}
}
returnpt;
}
intmain(intargc,charconst*argv[]){
int*p;
intscore[][N]={{60,75,82,91},{75,81,91,90},{51,65,78,84},{65,72,78,72},{75,70,98,92}};//四個學生的成績
for(inti=0;i<N; i){
p=search(score i);
if(p==*(score i)){
printf("成績不及格學生的成績分别是:\n");
for(intj=0;j<4; j){
printf("%d",*(p j));
}
}
}
getchar();
}
示例結果:
$gccex022.c-odemo
$./demo
成績不及格學生的成績分别是:
51657884
--END--
喜歡本文的同學記得點贊、轉發、收藏~
更多内容,歡迎大家關注我們的公衆号:計算廣告生态
後續C語言經典100例将會以pdf和代碼的形式發放到公衆号
同時也帶來更多系列文章以及幹貨❤️!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!