c语言编一个学生成绩统计程序

c语言编一个学生成绩统计程序,第1张

#include

<stdio.h>

void

main()

{

int

i,

n,

reno

float

score[30],

avr,

a,

b,

c

char

name[30][9]

for(i

=

0

i

<

30

i++)

{

printf("%d号的成绩:",

i+1)

scanf("%f",

&score[i])

if(score[i]

<

0)

break

printf("%d号的姓名:",

i+1)

scanf("%s",

name[i])

}

n

=

i

printf("统计不及格人数:\n")

reno

=

0

avr

=

0

for(i

=

0

i

<

n

i++)

{

if(

score[i]

<

60)

{

reno++

printf("%d,

%s\n",

i+1,

name[i])

}

avr

+=

score[i]

}

printf("不及格人数为%d\n\n",

reno)

printf("统计成绩在平均分及平均分之上的学生人数:\n")

avr

/=

nreno

=

0

for(i

=

0

i

<

n

i++)

{

if(score[i]

>=

avr)

{

reno++

printf("%d,

%s\n",

i+1,

name[i])

}

}

printf("成绩在平均分及平均分之上的学生人数为%d\n\n",

reno)

printf("统计各分数段的人数及所占百分比(分数段为<60,60~79,>=80):\n")

a

=

b

=

c

=0

for(i

=

0

i

<

n

i++)

{

if(score[i]

<

60)

a++

else

if(score[i]

>=

80)

c++

else

b++

}

printf("<60:\t%.1f%%\n60~79:\t%.1f%%\n>=80:\t%.1f%%\n",100*a/n,100*b/n,100*c/n)

}

#include<stdio.h>

#include<stdlib.h>

//定义一个学生结构体数组

struct Student{

int id

double score

}Student[100]

//记录实际导入学生个数

int len = 0

//求最高分

void getmax() {

int maxid = 0

double maxscore = -1

for (int i = 0i <leni++) {

if (Student[i].score >maxscore) {

maxscore = Student[i].score

maxid = Student[i].id

}

}

printf("班级最高分为:%.2lf学号是:%d\n", maxscore, maxid)

}

//求最低分

void getmin() {

int minid = 0

double minscore = 101

for (int i = 0i <leni++) {

if (Student[i].score <minscore) {

minscore = Student[i].score

minid = Student[i].id

}

}

printf("班级最低分为:%.2lf学号是:%d\n", minscore, minid)

}

//求总分

double getsum() {

double sum = 0

for (int i = 0i <leni++) {

sum += Student[i].score

}

return sum

}

//求平均分

double getave() {

double ave = 0

return getsum() / len

}

//导入学生信息

void input() {

int id = 0

double score = 0

while (1) {

printf("请输入学生学号:")

scanf_s("%d", &id)

if (id == -1) { break}

printf("请输入学生成绩:")

scanf_s("%lf", &score)

Student[len].id = id

Student[len].score = score

len++

}

printf("信息导入完毕!\n")

}

int main() {

input()

printf("全班总分为:%.2lf\n", getsum())

printf("全班平均分为:%.2lf\n", getave())

getmax()

getmin()

return 0

}

注:此代码运行于VS2017,如果在VC6.0中运行,可将scanf_s改成scanf

并且for(int i=0i<leni++){xxx}改成int i=0for(i=0i<leni++){xxx}即可正常运行

程序运行测试图如下:

import java.util.Scanner

public class test {

static int s

public static void main(String[] argv) {

int [] num=new int[20]

Scanner scanner=new Scanner(System.in)

Integer a

int i

for(i=1i<=20i++){

System.out.println("请输入第"+i+"一个分数(结束请输入520嘿嘿):")

a=scanner.nextInt()

num[i-1]=a

if(a==520){

break

}

}

for(int m=0m<i-1m++)

{

s=s+num[m]

}

System.out.println("总共录入了"+(i-1)+"个分数")

System.out.println("总成绩是"+s+"分")

System.out.println("平均分是"+s/(i-1)+"分")

for(Integer m=0m<num.length-1m++)

{ if(num[m]>0&&num[m]!=520){

if(num[m]>=90)

System.out.println(num[m]+"优秀")

else if(num[m]>=80)

System.out.println(num[m]+"良好")

else if(num[m]>=70)

System.out.println(num[m]+"中等")

else if(num[m]>=60)

System.out.println(num[m]+"及格")

else

System.out.println(num[m]+"不及格")

}else break

}

}

}

我的代码很简洁,采纳我呗。。。


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

原文地址: https://outofmemory.cn/yw/8066622.html

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

发表评论

登录后才能评论

评论列表(0条)

保存