帮忙看一下这个C语言程序错在哪里了
nclude<stdio.h>intReadScore(longnum[],floatscore[],intn){inti=0;scanf("%ld%f",&num[i]...
nclude<stdio.h>
int ReadScore(long num[],float score[],int n)
{
int i=0;
scanf("%ld%f",&num[i],&score[i]);
while(score[i]>=0)
{
i++;
scanf("%ld%f",&num[i],&score[i]);
}
return i;
} //录入每个学生的学号和考试成绩
int FindMax(int score[],long num[],int n,long*pMaxNum)
{
int i;
int maxScore;
maxScore=score[0];
*pMaxNum=num[0];
for(i=0;i<n;i++)
if(score[i]>maxScore)
{maxScore=score[i];
*pMaxNum=num[i];
}
return(maxScore,*pMaxNum);
}//计算并输出最高分及相应学生的学号
void sort(int score[],long num[],int n)
{
int i,j,h;
long t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(num[j]>num[j+1])
{t=num[j];num[j]=num[j+1];num[j+1]=t;
h=score[j];score[j+1]=score[j],score[j]=h;}
printf("form:\n");
for(i=0;i<n;i++)
printf("%ld %d",num[i],score[i]);
}// 按学号由小到大排出成绩表
void main()
{ int a,k=0,i,n;
int maxScore,*pMaxNum;
int ReadScore(long num[],float score[],int n);
int FindMax(int score[],long num[],int k,long*pMaxNum);
void sort(int score[],long num[],int n);
printf("1.Appdend record\n 2.Caculate Max.score of course and number\n3.Sort in ascending order by number\n0.Exist\nPlease enter your choise:\n");
scanf("%d",&a);//程序运行后先显示如下菜单
while(a!=0)//输入0退出菜单
{
if(a==1)
ReadScore(num,score,n);//输入1进入“录入每个学生的学号和考试成绩”
if(a==2)
{
printf("The highest score is: %d\n The student number is :%ld");
FindMax(score,num,n,pMaxNum);
}//输入2进入“计算并输出最高分及相应学生的学号”
if(a==3)
{
sort(num,score,n);
} //输入3进入“按学号由小到大排出成绩表”
}
}
if(a==1)时下面的语句 ReadScore(num,score,n);调试时出现下面的错误
: error C2065: 'num' : undeclared identifier
: error C2065: 'score' : undeclared identifier
程序原题如下:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组和指针作函数参数,编程实现如下菜单驱动的学生成绩管理系统:
(1)录入每个学生的学号和考试成绩;
(2)计算并输出最高分及相应学生的学号;
(3)按学号由小到大排出成绩表。
要求程序运行后先显示如下菜单,并提示用户输入选项:
1.Append record
2.Caculate Max. score of course and number
3.Sort in ascending order by number
0.Exit
Please enter your choice:
然后,根据用户输入的选项执行相应的操作。 展开
int ReadScore(long num[],float score[],int n)
{
int i=0;
scanf("%ld%f",&num[i],&score[i]);
while(score[i]>=0)
{
i++;
scanf("%ld%f",&num[i],&score[i]);
}
return i;
} //录入每个学生的学号和考试成绩
int FindMax(int score[],long num[],int n,long*pMaxNum)
{
int i;
int maxScore;
maxScore=score[0];
*pMaxNum=num[0];
for(i=0;i<n;i++)
if(score[i]>maxScore)
{maxScore=score[i];
*pMaxNum=num[i];
}
return(maxScore,*pMaxNum);
}//计算并输出最高分及相应学生的学号
void sort(int score[],long num[],int n)
{
int i,j,h;
long t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(num[j]>num[j+1])
{t=num[j];num[j]=num[j+1];num[j+1]=t;
h=score[j];score[j+1]=score[j],score[j]=h;}
printf("form:\n");
for(i=0;i<n;i++)
printf("%ld %d",num[i],score[i]);
}// 按学号由小到大排出成绩表
void main()
{ int a,k=0,i,n;
int maxScore,*pMaxNum;
int ReadScore(long num[],float score[],int n);
int FindMax(int score[],long num[],int k,long*pMaxNum);
void sort(int score[],long num[],int n);
printf("1.Appdend record\n 2.Caculate Max.score of course and number\n3.Sort in ascending order by number\n0.Exist\nPlease enter your choise:\n");
scanf("%d",&a);//程序运行后先显示如下菜单
while(a!=0)//输入0退出菜单
{
if(a==1)
ReadScore(num,score,n);//输入1进入“录入每个学生的学号和考试成绩”
if(a==2)
{
printf("The highest score is: %d\n The student number is :%ld");
FindMax(score,num,n,pMaxNum);
}//输入2进入“计算并输出最高分及相应学生的学号”
if(a==3)
{
sort(num,score,n);
} //输入3进入“按学号由小到大排出成绩表”
}
}
if(a==1)时下面的语句 ReadScore(num,score,n);调试时出现下面的错误
: error C2065: 'num' : undeclared identifier
: error C2065: 'score' : undeclared identifier
程序原题如下:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组和指针作函数参数,编程实现如下菜单驱动的学生成绩管理系统:
(1)录入每个学生的学号和考试成绩;
(2)计算并输出最高分及相应学生的学号;
(3)按学号由小到大排出成绩表。
要求程序运行后先显示如下菜单,并提示用户输入选项:
1.Append record
2.Caculate Max. score of course and number
3.Sort in ascending order by number
0.Exit
Please enter your choice:
然后,根据用户输入的选项执行相应的操作。 展开
3个回答
展开全部
错误1: ReadScore(num,score,n); num 与 score 变量未申明;应该是num 与score数组元素的输入
错误2:头文件包含有误 (估计是楼主没复制好)
错误2:头文件包含有误 (估计是楼主没复制好)
追问
所以额。。。。。。怎么改???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改后:
#include "stdio.h"
int max(int x,int y) {
int e;
if(x>y) e=x;
else e=y;
return e;
}
int main() {
printf("请输入三个整数\n");
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
d=max(max(a,b),c);
printf("最大数是%d\n",d);
return 0;
}
以上回答你满意么?
#include "stdio.h"
int max(int x,int y) {
int e;
if(x>y) e=x;
else e=y;
return e;
}
int main() {
printf("请输入三个整数\n");
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
d=max(max(a,b),c);
printf("最大数是%d\n",d);
return 0;
}
以上回答你满意么?
追问
你没有明白我程序的用意
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-06-01
展开全部
int FindMax(int score[],long num[],int n,long*pMaxNum)
这个函数返回的是一个int型参数,pMaxNum是一个long型的指针!怎么能同时返回两个参数呢?
这个函数返回的是一个int型参数,pMaxNum是一个long型的指针!怎么能同时返回两个参数呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询