满意答案
qiheqx
2015.05.08
采纳率:56% 等级:10
已帮助:268人
您好,这样的:
//其实这些语法错误都很好检查的,真正难查的是逻辑错误
//编译不通过的时候多看一下窗口的提示信息,看一下哪里错了,这样很好改的
#include
#include
#include
using namespace std;//这里要加上这个东西,C++里必需要的
struct stu{//这个定义放前面来,后面要用到
char name[20];
double num;
double score[4];
}student[4];
void stud(stu p[]);//这里student不是一个类型stu才是
void sort(stu p[]); //这里student不是一个类型stu才是
void output1(stu p[]);
void stud(stu p[]){//这里student不是一个类型stu才是
int i=0;//暂且先定义一个吧,不定义的话后面的错误改不了
student[i].score[4]=0;//这里的i未定义,我不知道你这里想做什么,所以不好改,你这里用到i一定要有i的定义的
for(i=0;i<4;i++){
printf("请输入第%d个学生的姓名,学号,三门成绩:\n",i+1);
scanf("%s",p[i].name);
scanf("%lf",p[i].num);
int j=0;//这里j 没有定义
for(j=0;j<3;j++)
{scanf("%lf",&p[i].score[j]);
p[i].score[3]=p[i].score[3]+p[i].score[j];}
p[i].score[3]=p[i].score[3]/3;
}
}
void sort(stu p[]){//这里student不是一个类型stu才是
int i,j;
struct stu temp;
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
if(p[j].score[3]
{temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
}//这里也少了右括号
void output(stu p[]){
int i,j;//这里i,j未定义
for(i=0;i<3;i++)
{
printf("%s%lf",p[i].name,p[i].num); //这里num写成了number了
for(j=0;j<=3;j++)
printf("%7.2lf",p[i].score[j]);
}//这里少了右括号
}
int main(){
stu p[4];//这里student不是一个类型stu才是
stud(p);
sort(p);
output(p);
system("pause");
return 0;
}追问: 麻烦看一下我源代码里的错误在哪呗!!谢了!!!
00分享举报