[問題] 有關函式指標
看板C_and_CPP (C/C++)作者kenboy99999 (Poppin~蛆~)時間16年前 (2010/03/21 22:35)推噓2(2推 0噓 11→)留言13則, 5人參與討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
以下為程式碼
#include<stdio.h>
#include<stdlib.h>
#define STUDENT 3
#define EXAMS 4
void minimum(const int grade[][EXAMS], int pupils, int tests);
void maximum(const int grade[][EXAMS], int pupils, int tests);
void average(const int setOfGrades[], int tests);
void printArray(const int grade[][EXAMS], int pupils, int tests);
int main()
{
int student;
const int
studentGrades[STUDENT][EXAMS]={{77,68,86,73},{96,87,89,78},{70,90,86,81}};
void (*processGrades[4])(int)={minimum,maximum,average,printArray};<<這行有錯,不懂要怎麼改才可以
int choice;
printf(" Enter a choice :");
printf("\n 0 Print the array of grades\n");
printf(" 1 Find the minimum grade \n");
printf(" 2 Find the maximum grades\n");
printf(" 3 Print the average on all test for each student\n");
printf(" 4 End program\n");
scanf("%d",&choice);
system("pause");
printf("Enter:\n");
printArray(studentGrades, STUDENT, EXAMS);
printf("\n\nLowest grade: %d\nHighest grade: %d\n",
minimum(studentGrades, STUDENT, EXAMS),
maximum(studentGrades, STUDENT, EXAMS));
for(student = 0; student<STUDENT; student++){
printf("The average grade for student %d is %.2f\n",
student, average(studentGrades[student],EXAMS));
}
system("pause");
return 0;
}
void minimum(const int grade[][EXAMS], int pupils, int tests)
{
int i;
int j;
int lowGrade = 100;
for(i=0; i<pupils; i++){
for(j=0; j<tests; j++){
if(grade[i][j]<lowGrade){
lowGrade = grade[i][j];
}
}
}
}
void maximum(const int grade[][EXAMS], int pupils, int tests)
{
int i;
int j;
int highGrade = 0;
for(i=0; i<pupils; i++){
for(j=0; j<tests; j++){
if(grade[i][j]>highGrade){
highGrade = grade[i][j];
}
}
}
}
void average(const int setOfGrades[], int tests)
{
int i;
int total = 0;
for(i=0; i<tests; i++){
total += setOfGrades[i];
}
}
void printArray(const int grade[][EXAMS], int pupils, int tests)
{
int i;
int j;
printf(" [0] [1] [2] [3]");
for(i=0; i<pupils; i++){
printf("\nstudentGrades[%d]", i);
for(j=0; j<tests; j++){
printf("%-5d", grade[i][j]);
}
}
}
希望得到的正確結果:
程式跑出來的錯誤結果:
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
有問題的code: (請善用置底文標色功能)
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.163.225
推
03/21 22:54, , 1F
03/21 22:54, 1F
→
03/21 23:03, , 2F
03/21 23:03, 2F
→
03/21 23:07, , 3F
03/21 23:07, 3F
→
03/21 23:13, , 4F
03/21 23:13, 4F
→
03/21 23:13, , 5F
03/21 23:13, 5F
→
03/21 23:16, , 6F
03/21 23:16, 6F
推
03/21 23:44, , 7F
03/21 23:44, 7F
→
03/21 23:44, , 8F
03/21 23:44, 8F
→
03/22 05:02, , 9F
03/22 05:02, 9F
→
03/22 05:04, , 10F
03/22 05:04, 10F
→
03/22 05:05, , 11F
03/22 05:05, 11F
→
03/22 05:06, , 12F
03/22 05:06, 12F
→
03/22 05:07, , 13F
03/22 05:07, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章