c语言程序设计实例(关于成绩输入问题)

c语言程序设计实例(关于成绩输入问题),第1张

同学你好!

这是我自己写的,肯定不是最好的,但是已经能够满足你的要求了,后面附有注释,若有不懂的话请留言。

#include<stdio.h>

#include<stdlib.h>

#define

N

1024

typedef

struct

node

{

int

sno/*这里分别是学号(便于最后列表时统计),四门课的分数,总分,平均分*/

int

course1

int

course2

int

course3

int

course4

int

aver

}student

void

main()

{

int

i,j,number

int

total1,total2,total3,total4

total1=total2=total3=total4=0/*total指的是四门课程的平均分*/

student

st[N],temp

printf("Please

input

the

student's

number:")/*确定学生人数*/

scanf("%d",&number)

if(number>1024)

{

printf("The

number

is

too

large!\n")

exit(0)

}

for(i=0i<numberi++)/*进行成绩输入*/

{

printf("Please

input

the

%dth

student's

sno:",i+1)

scanf("%d",&st[i].sno)

printf("Please

input

the

%d's

student's

course1:",st[i].sno)

scanf("%d",&st[i].course1)

printf("Please

input

the

%d's

student's

course2:",st[i].sno)

scanf("%d",&st[i].course2)

printf("Please

input

the

%d's

student's

course3:",st[i].sno)

scanf("%d",&st[i].course3)

printf("Please

input

the

%d's

student's

course4:",st[i].sno)

scanf("%d",&st[i].course4)

st[i].aver=(st[i].course1+st[i].course2+st[i].course3+st[i].course4)/4

}

for(i=0i<numberi++)/*输出每个学生的平均分*/

printf("The

%d's

student's

aver-score

is:%d\n",st[i].sno,st[i].aver)

for(i=0i<numberi++)/*输出每科目平均分*/

{

total1+=st[i].course1

total2+=st[i].course2

total3+=st[i].course3

total4+=st[i].course4

}

total1/=number

total2/=number

total3/=number

total4/=number

printf("The

averscore

of

course1

is:%d\n",total1)

printf("The

averscore

of

course2

is:%d\n",total2)

printf("The

averscore

of

course3

is:%d\n",total3)

printf("The

averscore

of

course4

is:%d\n",total4)

for(i=0i<number-1i++)/*进行冒泡排序*/

for(j=i+1j<numberj++)

if(st[i].aver<st[j].aver)

{

temp=st[i]

st[i]=st[j]

st[j]=temp

}

printf("The

list

of

the

student's

course:\n")

printf("==========\n")/*列表公布成绩*/

for(i=0i<numberi++)

{

printf("%d.",i+1)

printf("%dth

student:%d\n",st[i].sno,st[i].aver)

}

}

上级运行成功,希望对你有所帮助!

祝你的成绩步步高升!

#include<stdio.h>

void main(){

int i,j,score[10],count=0,temp,sum=0

double avg

for(i=0i<10i++){ //输入10个学生的成绩,并求着10个学生的成绩总和

printf("请输入第%d个学生的成绩:",(i+1))

scanf("%d",&score[i])

sum+=score[i]

}

avg=sum*1.0/10 //求着这10个学生成绩的平均值

for(i=0i<10i++){ //统计小于平均分的学生人数

if(score[i]<avg){

count++

}

}

for(i=0i<10i++){ //使用冒泡排序对这10个学生的成绩逆序排序

for(j=0j<9-ij++){

if(score[j]<score[j+1]){

temp=score[j]

score[j]=score[j+1]

score[j+1]=temp

}

}

}

printf("最高成绩:%d分,平均成绩:%.2f分,低于平均成绩的人数是:%d人!\n",score[0],avg,count)

}

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define N 2//学生人数

#define M 4//课程数

struct student

{

char name[20]

float score[M]

float average

}

struct student temp

float average(float score[M])//求平均分

{

int i

float sum=0

for(i=0i<Mi++)

sum+=score[i]

return sum/M

}

void sort(struct student st[])//排序

{

int i,j

for(i=0i<Ni++)

{ temp=st[i]

for(j=ij<Nj++)

{

if(st[j].average>temp.average)

{

st[i]=st[j]

st[j]=temp

}

}

}

}

void output_mingci(struct student st[])//输出名次

{

int i

for(i=0i<Ni++)

printf("%s\t第%d名\n",st[i].name,i+1)

}

void output_data(struct student st[])//输出信息

{

int i,j

printf("姓名\t英语\t数学\t政治\t历史\t平均分\n")

for(i=0i<Ni++)

{ printf("%s\t",st[i].name)

for(j=0j<Mj++)

printf("%.2f\t",st[i].score[j])

printf("%.2f\n",st[i].average)

}

}

void input_data(struct student st[])//输入数据

{

int i,j

for(i=0i<Ni++)

{

printf("请输入学生的姓名:")

scanf("%s",st[i].name)

printf("请输入学生各门功课的成绩:")

for(j=0j<Mj++)

scanf("%f",&st[i].score[j])

st[i].average=average(st[i].score)

}

}

int main()

{ int i

struct student st[N]

printf("\t\t\t\t学生成绩统计系统\n")

input_data(st)

sort(st)

output_mingci(st)

output_data(st)

system("PAUSE")

return 0

}

/*编译系统是DEV-CPP,2008.12.18*/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7803224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存