您的位置:

关于getfailnum在c语言的信息

本文目录一览:

跪求学生成绩管理系统设计(C语言程序设计)

这是我在大学时做的,你看看:

/*

程序功能:

能完成每位学生的某门课程的平时成绩和期末考试成绩的录入,

完成每位学生的总评成绩计算(平时成绩*30%+期末考试成绩*70%)并生成数据文件,

生成分数段统计文件(不及格人数,60-69数,70-79人数,80-89人数,90-100人数,及格

率),

通过学生成绩的数据文件查询学生成绩(查询条件自定)。

通过学生成绩的分段统计文件输出学生成绩分段情况和及格率。

程序要求:

(1)能够完成300人以内任何人数的成绩处理。

(2)程序要有主控菜单

*/

#includestdio.h

#includestdlib.h

#includestring.h

struct stud

{

long num;

char name[20];

double score;

};

typedef struct stucode

{

struct stud student ;

struct stucode *next;

}L;

void menu();

void createlist(struct stucode **r);

void out(struct stucode *r);

void search1(struct stucode *r);

void search2(struct stucode *r);

void del(struct stucode **r);

void insert(struct stucode **r);

void sort(struct stucode **r);

void main()

{

char choose;

int flag=1;

struct stucode *r=NULL;

while(flag)

{

system("cls");

menu();

choose=getchar();

switch(choose)

{

case '1':

createlist(r);

out(r);

printf("Testing function 1\nPress any key to continue\n");

getchar();

getchar();

break;

case '2':

search1(r);

printf("Testing function 1\nPress any key to continue\n");

getchar();

getchar();

break;

case '3':

search2(r);

printf("Testing function 1\nPress any key to continue\n");

getchar();

getchar();

break;

case '4':

del(r);

out(r);

printf("Testing function 1\nPress any key to continue\n");

getchar();

getchar();

break;

case '5':

insert(r);

out(r);

printf("Testing function 1\nPress any key to continue\n");

getchar();

getchar();

break;

case '6':

sort(r);

out(r);

printf("Testing function 1\nPress any key to continue\n");

getchar();

getchar();

break;

case '7':

out(r);

printf("Testing function 7\nPress any key to continue\n");

getchar();

getchar();

break;

case '0':

flag=0;

printf("The end.\n");

break;

default: printf("\nWrong Selection!(选择错误,请重选!)\n");getchar();getchar();

}

}

}

void createlist(struct stucode **r)

{

struct stucode *p,*t;

long n;

char a[20];

double s;

if(*r) *r=NULL;

printf(" \n请输入:\n 学号(请按学号升序排列) 姓名 分数 (若要结束请输入三个为零)

\n");

scanf("%ld%s%lf",n,a,s);

if(n==0) return;

p=(L *)malloc(sizeof(L));

p-student.num=n;

strcpy(p-student.name,a);

p-student.score=s;

p-next=NULL;

*r=p;

scanf("%ld%s%lf",n,a,s);

while(n)

{

t=p;

p=(L *)malloc(sizeof(L));

p-student.num=n;

strcpy(p-student.name,a);

p-student.score=s;

p-next=NULL;

t-next=p;

scanf("%ld%s%lf",n,a,s);

}

}

void search1(struct stucode *r)

{

long x;

if(!r)

{

printf("没有学生信息可查询!\n");

return ;

}

printf(" 请输入要查询的学生信息的学生学号:\n");

scanf("%ld",x);

while(rr-student.num!=x)

r=r-next;

if(r==NULL)

printf("Error! No such student !\n");

else

printf("%ld %s %.2lf\n",r-student.num,r-student.name,r-student.score);

}

void search2(struct stucode *r)

{

char m[20];

if(!r)

{

printf("没有学生信息可查询!\n");

return ;

}

printf(" 请输入要查询的学生信息的学生姓名:\n");

scanf("%s",m);

while(rstrcmp(r-student.name,m))

r=r-next;

if(r==NULL)

printf("Error! No such student !\n");

else

printf("%ld %s %.2lf\n",r-student.num,r-student.name,r-student.score);

}

void del(struct stucode **r)

{

long k;

struct stucode *p=*r,*t;

if(!(*r))

{

printf("没有学生信息可删除 !\n");

return ;

}

printf(" 请输入要删除的学生信息的学生学号:\n");

scanf("%ld",k);

if(p-student.num==k)

*r=(*r)-next,free(p);

else

{

while(p-nextp-next-student.num!=k)

p=p-next;

if(p-next==NULL)

printf("Error! No such student !\n");

else

{

t=p-next;

p-next=p-next-next;

free(t);

}

}

}

void insert(struct stucode **r)

{

long n;

char a[20];

double s;

L *p,*t,*k;

printf(" 请输入要插入的学生信息的学生学号 姓名 分数:\n");

scanf("%ld%s%lf",n,a,s);

p=(L *)malloc(sizeof(L));

p-student.num=n;

p-student.score=s;

strcpy(p-student.name,a);

if(!(*r))

{

*r=p;

(*r)-next=NULL;

return ;

}

if(p-student.num(*r)-student.num)

p-next=(*r),(*r)=p;

else

{

t=*r;

k=t;

while(t-nextt-next-student.num=p-student.num)

t=t-next;

p-next=t-next;

t-next=p;

*r=k;

}

}

void sort(struct stucode **r)

{

struct stucode *t,*p,*q,*z;

if(!r)

{

printf("没有学生信息可排序!\n");

return ;

}

if(!(*r)||!(*r)-next)

return;

t=*r;

p=t-next;

t-next=NULL;

while(p)

{

q=p-next;

if(p-student.scoret-student.score)

{

p-next=t;

t=p;

}

else

{

z=t;

while(z-nextz-next-student.score=p-student.score)

z=z-next;

p-next=z-next;

z-next=p;

}

p=q;

}

*r=t;

}

void out(struct stucode *r)

{

printf("\n\n");

if(!r)

{

printf("没有学生信息可输出!\n");

return ;

}

while(r)

{

printf("%ld %s %.2lf\n",r-student.num,r-student.name,r-student.score);

r=r-next;

}

printf("\n\n");

}

void menu()

{

printf("\n 学生信息管理系统\n");

printf("\n 菜单\n\n");

printf("\n 1建立链表并显示\n");

printf("\n 2查找某学号的学生信息\n");

printf("\n 3查找某姓名的学生信息\n");

printf("\n 4删除某学号的学生信息\n");

printf("\n 5插入新的学生信息\n");

printf("\n 6按分数降序排列输出\n");

printf("\n 7输出\n");

printf("\n 0退出\n");

printf("\n 请选择您要执行的选项:\n");

}

c语言问题

#includestdio.h

/*函数功能:从键盘输入一个班学生某门课的成绩及其学号

当输入成绩为负值时,输入结束

函数参数: 长整型数组num,存放学生学号

实型数组score,存放学生成绩

函数返回值:学生总数

*/

int ReadScore(long num[],float score[])

{

int i,j,n=0;

printf("please input students number:\n");

for(i=0;i5;i++)

{

scanf("%d",num[i]);

n=n+1;

}

for(i=0;i5;i++)

{

printf("please input No.%d student's score:\n",i+1);

for(j=0;j1;j++)

scanf("%f",score[j]);

}

return(n);

}

/*函数功能:统计不及格人数并打印不及格学生名单

函数参数:长整型数组num,存放学生学号

实型数组score,存放学生成绩

整型变量n,存放学生总数

函数返回值:不及格人数

*/

int GetFail(long num[], float score[], int n)

{

int i,fail;

for(i=0;i5;i++)

if(score[i]60)

{

printf("the fail student number is:%d\n",i);

fail=fail+1;

}

printf("there are %d students failed:\n",fail);

return (fail);

}

/*函数功能:计算全班平均分

函数参数:实型数组score,存放学生成绩

整型变量n,存放学生总数

函数返回值:平均分

*/

float GetAver(float score[], int n)

{

float sum=score[0],aver;

int i;

for(i=0;i5;i++)

{

sum=sum+score[i];

aver=sum/n;

}

printf("the average score is %f\n",aver);

return (aver);

}

/*函数功能:统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单

函数参数:长整型数组num,存放学生学号

实型数组score,存放学生成绩

整型变量n,存放学生总数

函数返回值:成绩在全班平均分及平均分之上的学生人数

*/

int GetAboveAver(long num[], float score[], int n)

{

int i,above=0;

float aver;

aver=GetAver(score,n);

for(i=0;i5;i++)

if(score[i]=aver)

{

above=above+1;

for(i=0;i5;i++)

printf("%d",num[i]);

}

printf("there are %d students above the average\n",above);

return(above);

}

/*函数功能:统计各分数段的学生人数及所占的百分比

函数参数:实型数组score,存放学生成绩

整型变量n,存放学生总数

函数返回值:无

*/

void GetDetail(float score[], int n)

{

int i,x=0,y=0,z=0,w=0;

float percent;

n=0;

for(i=0;i5;i++)

if(score[i]=60score[i]70)

{

x=x+1;

percent=(float)(x/n);

printf("there are %d students above 60\n",x);

printf("\n%f",percent);

}

else if(score[i]=70score[i]80)

{

y=y+1;

percent=(float)(y/n);

printf("there are %d students above 70\n",y);

printf("\n%f",percent);

}

else if(score[i]=80score[i]90)

{

z=z+1;

percent=(float)(z/n);

printf("there are %d students above 80\n",z);

printf("\n%f",percent);

}

else if(score[i]=90score[i]100)

{

w=w+1;

percent=(float)(w/n);

printf("there are %d students above 90\n",w);

printf("\n%f",percent);

}

}

void main()

{

long num[5];

float score[5],aver;

int n=0,i,fail,above;

n=ReadScore(num,score);

aver=GetAver(score, n);

fail=GetFail(num, score,n=0);

above=GetAboveAver(num,score, n=0);

}

改到没有语法错误了,不过逻辑有没有错误就不知道了。主要在于函数里的行参不能赋值和强制转换函数float 应写为(float)i;而不能是float(i).

我是大一新生新学数组,编了一个计成绩的C语言程序,看不懂程序错在哪,请帮一下忙。谢谢!

10 行左右改成 int main()

7行左右改成:int GetAboveAver(int num[], float score[], int n, int);

47行左右改成:int GetFail(int* num, float * score,int n)

84行最优,改成:void GetDetail(float score[],int n)

114到120行 100后面没百分号。

想想我大一的时候没这么勤奋啊,呵呵,加油啊。