C语言 用二维数组存储学生成绩 试以此数据结构为基础 已知成绩表 学号 返回该生成绩表;输出学生学号成绩

有若干个学生,每人考4门课程,设用二维数组存储学生的成绩,二维数组的一行对应一个学生的成绩,每行的第一个数是学生的学号。试以此数据结构为基础,编写两个函数:一个是已知成绩表和学号,返回该生成绩表的函数;另一个是已知某个学生表,输出学生学号和成绩的函数,要求两个函数采用指针编写。

函数原型:

int *searchStudent(int (*pStuList)[5], int n,
int stuID)

void outputGrade(int *pStu)

比较简单的写法如下

#include <stdio.h>
int *searchStudent(int (*pStuList)[5], int n, 
int stuID)
{
int i;
for(i = 0; i < n; i ++)
if(stuID == pStuList[i][0]) return pStuList [i];
return NULL;
}

void outputGrade(int *pStu)
{
if(pStu)
printf("number = %d, score = %d %d %d %d\n", pStu[0], pStu[1], pStu[2], pStu[3], pStu[4]);
}
int main()
{
int stu[][5] = {
{1111,1,1,1,1},
{2222,2,2,2,2},
{3333,3,3,3,3},
{4444,4,4,4,4},
{5555,5,5,5,5}
};
int *p = NULL;
int number;
scanf("%d", &number);
p = searchStudent(stu, 5, number);
if(p)
outputGrade(p);
else printf("no student number %d found\n", number);
return 0;
}追问

错误 1 error MSB4014: 生成已意外停止,因为发生内部故障。
Microsoft.Build.Exceptions.BuildAbortedException: 已取消生成。未能以子节点形式启动 MSBuild.exe,因为在位置“C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe”处找不到该程序。这是什么回事??

追答

你用的是.net吗? 这个不懂 没玩过 不知道和标准C是不是有什么不同的地方
我写的是标准C的

温馨提示:答案为网友推荐,仅供参考
相似回答