鱼丸07 2019-12-02 12:58 采纳率: 33.3%
浏览 212

C语言菜鸟 想问一下这个程序哪里有错误(关于指针和数组的问题)谢谢!

#include
#include
#define N 5
#define M 3

void duru(int score[][M],long num[],int n)
{
int i,j;
printf("Input student's ID and score as:MH EN PH:\n");
for(i=0;i<N;i++)
{
scanf("%ld",&num[i]);
for(j=0;j<M;j++)
{
scanf("%d",&score[i][j]);
}
}
}

void aver(int score[][M],int n)
{
int i;
float aver;
float sum=0;
for(i=0;i<N;i++)
{
sum=sum+score[i][0];
}
aver=sum/N;
printf("第一门课程平均数为%.2f\n",aver);
}

void fail(double(*p)[M])
{
int i,j,count=0;
double sum=0;
for(i=0;i {
count=0;
sum=0;
for(j=1;j {
if(*(*(p+i)+j) {
count++;
}
}
if(count>=2)
{
for(j=1;j<M;j++)
{
sum+= ((p+i)+j);
}
printf("该学生有超过两门以上课程不及格\n");
printf("\n平均成绩为%.3f\n",sum/M);
}
}
}

void youxiu(double(*p)[M])
{
int i,j,count=0;
double sum=0;
for(i=0;i {
count=0;
sum=0;
for(j=1;j {
sum+=*(*(p+i)+j);
if(*(*(p+i)+j)>=85)
{
count++;
}
}
if(count==M)
{
printf("该学生全部课成绩在 85 分以上\n");
printf("\n平均成绩为%.3f\n",sum/M);
}
else( sum/M >= 90)
{
printf("该学生所有成绩平均分在 90 分以上\n");
printf("\n平均成绩为%.3f\n",sum/M);
}
}
}

int main()
{
int iSelect=1;
int score[N][M],sum[N],n;
long num[N];
printf("Input the total number of the students(n<=5):");
scanf("%d",&n);

while(iSelect!=0)
{
printf("                                       Menu                                           \n");
printf("**************************************************************************************\n");

printf("*1.任务1:录入每个学生的学号和成绩;                                                 *\n");
printf("*2.任务2:求第一门课的平均分;                                                       *\n");
printf("*3.任务3:找出有 2 门以上课程不及格的学生, 输出他们的学号、全部课程成绩、平均成绩; *\n");
printf("*4.任务4:找出平均成绩 90 分以上或全部课成绩在 85 分以上的学生。                     *\n");
printf("*5.退出                                                                              *\n");

printf("**************************************************************************************\n"); 
scanf("%d",&iSelect);
switch(iSelect)
{
case 1:
        duru(score,num,n);
        break;
case 2:
        aver(score,n);
        break;
case 3:
        fail(score,num,n);
        break;
case 4:
        youxiu(score,num);
        break;
case 5:

        break;

        }
    }
return 0;

}

有一个班 5 个学生,3 门课。用二维数组作函数参数编程实现如下菜单 驱动的学生成绩管理系统:
(1) 录入每个学生的学号和成绩;
(2) 求第一门课的平均分;
(3) 找出有 2 门以上课程不及格的学生, 输出他们的学号、全部课程成绩、平均成绩;
(4) 找出平均成绩 90 分以上或全部课成绩在 85 分以上的学生。
(5) 退出
要求:分别编 4 个函数,通过指针运算实现以上 4 个功能。

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-12-02 14:20
    关注

    for(i=0;i {
    这里错了

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料