编程实现学生成绩
『壹』 编程实现:从键盘输入10个学生的成绩,计算出平均分,并输出低于平均分的学生成绩大神们帮帮忙
#include<stdio.h>
int main()
{
int i,j;
float students[10];
float sum=0,average;
for(i=0;i<10;i++)
{
printf("请输入的学生的成绩:");
scanf("%f",&students[i]);
sum=sum+students[i];
}
average=sum/10;
for(i=0;i<10;i++)
if (students[i]<average)
printf("这几个同学低于平均分的成绩为为:%f ",students[i]);
printf("平均成绩为:%.2f ",average);
return 0;
}
(1)编程实现学生成绩扩展阅读:
int a[10]; 说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。
特点:
1,数组是相同数据类型的元素的集合。
2,数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3,数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
『贰』 请用C语言自定义函数的形式编程实现求10名学生1门课程成绩的平均分。
#include <stdio.h>
float ave(float *a, int n)
{
float r=0;
int i;
for(i = 0; i < n; i ++)
r+=n;
return r/n;
}
int main()
{
float a[10];
int i;
for(i = 0; i < 10; i ++)
scanf("%f",a+i);
printf("%f ", ave(a,10));
return 0;
}
(2)编程实现学生成绩扩展阅读
printf用法:
printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
inta=1234;
printf("a=%d\n",a);
输出结果为a=1234。
return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
『叁』 编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数
如图
//编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。
//要求:①定义并使用自定义函数intfun(floatarr[],intn)实现统计80分以上人数的功能。
//②输入输出功能由主函数实现。
//(思考:①如何统计不及格学生的人数。②如何求出平均分
#include<stdio.h>
#include<malloc.h>
typedefstructfun_Total{
intgoodNUM; //80分以上人数
intfailNUM; //不及格人数
floatave; //平均分
}fun_Total;
fun_Total*fun(floatarr[],intn)
{
inti;
fun_Total*R=(fun_Total*)malloc(sizeof(fun_Total));
R->goodNUM=0;R->failNUM=0;R->ave=0;
for(i=0;i<n;i++){
R->ave+=arr[i];
if(arr[i]>80)R->goodNUM++; //80以上即>80
elseif(arr[i]<60)R->failNUM++;
}
R->ave/=n;
returnR;
}
voidmain()
{
inti=0,n=10;
floatarr[10];
fun_Total*RT;
printf("请输入学生的分数(按回车完成每个人的成绩输入)
");
for(i=0;i<n;i++){
printf("第%d名学生分数=",i+1);
scanf("%f",&arr[i]);
if(arr[i]>100||arr[i]<0)
{
printf("输入非法! ");
i--;
}
}
RT=fun(arr,n);
printf("
80分以上的学生有%d人
",RT->goodNUM);
printf("
不及格的学生有%d人
",RT->failNUM);
printf("
平均分为%f
",RT->ave);
free(RT);
}
『肆』 用C语言编程实现一个简单的学生成绩管理系统
#include<stdio.h>#include<string.h>typedefstructstudent{charname[20]; /*姓名*/intcode; /*学号*/intkor,eng,math; /*3门课程的成绩*/}STUDENT;/*返回输入数据*/STUDENTInput();/*输出所有输入的数据*/voidOutput(STUDENTinfo[],intcnt);/*将输入分数转换为A-F*/chargrade(intscore);intmain(){STUDENTS[10];intcnt=0,select;inti,j;intcode;while(1){printf(" 学生信息管理系统 ");printf(" 1 添加 ");printf(" 2 删除 ");printf(" 3 查询 ");printf(" 0 结束 ");printf(" 您的选择[0-3]:");scanf("%d",&select);if(select<0||select>3)continue;if(select==0){printf("退出系统! ");break;}if(select==1) /*添加*/{S[cnt++]=Input();}elseif(select==2) /*删除*/{printf(" 待删除学生的学号:");scanf("%d",&code);for(i=0;i<cnt;i++)if(S[i].code==code)break;if(i>=cnt){printf("学号不存在,删除失败! ");}else{for(j=i+1;j<cnt;j++){strcpy(S[j-1].name,S[j].name);S[j-1].code=S[j].code;S[j-1].kor=S[j].kor;S[j-1].eng=S[j].eng;S[j-1].math=S[j].math;}cnt--;printf("删除成功! ");}}else /*查询*/{printf(" 待查找学生的学号:");scanf("%d",&code);for(i=0;i<cnt;i++)if(S[i].code==code)break;if(i>=cnt){printf("学号不存在,查找失败! ");}else{printf(" 查询结果: ");Output(S,i);}}}return0;}/*返回输入数据*/STUDENTInput(){STUDENTstu;printf(" 新学生信息 ");printf(" 学号:");scanf("%d",&stu.code);printf(" 姓名:");getchar();gets(stu.name);printf(" 3门课程成绩(以空格分隔):");scanf("%d%d%d",&stu.kor,&stu.eng,&stu.math);returnstu;}/*输出所有输入的数据*/voidOutput(STUDENTinfo[],intcnt){printf("学号:%d ",info[cnt].code);printf("姓名:");puts(info[cnt].name);printf("成绩:%c%c%c ",grade(info[cnt].kor),grade(info[cnt].eng),grade(info[cnt].math));}/*将输入分数转换为A-F*/chargrade(intscore){if(score<0||score>100)return'F';if(score>=90)return'A';if(score>=80)return'B';if(score>=70)return'C';if(score>=60)return'D';elsereturn'E';}
运行测试:
『伍』 用C语言编程实现学生成绩管理程序,要求可以根据选择实现以下功能:(90分) 1、输入5个学生的姓名
//仅作参考
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#include"string.h"
intstudentNum=0;
#defineMAXSTUDENT(1024)
#defineCheckData()
{
if(!studentNum)
{
printf("没有学生数据,按任意键返回…… ");
getch();
return;
}
}
typedefstructStudent
{
intid;
intcScore;
intmathScore;
}Student;
voidClearStudent(Student*student)
{
memset((void*)student,0,sizeof(*student));
}
voidShowMainMenu()
{
system("cls");
printf("1.增加记录 2.计算每个学生的总成绩 3.计算每门课程的平均成绩 4.按座号查询学生的成绩 5.按总分排名 6.输出前n名的学生的成绩 7.修改成绩 0.退出 ");
}
voidShowCountScore(constStudent*student)
{
system("cls");
CheckData();
for(inti=0;i<studentNum;i++)
printf("学生%04d的总成绩:%d ",(student+i)->id,(student+i)->cScore+(student+i)->mathScore);
printf(" 按任意键继续……");
getch();
}
voidShowClassAvg(constStudent*student)
{
system("cls");
CheckData();
doublesumc=0;
doublesummath=0;
for(inti=0;i<studentNum;i++)
{
sumc+=(student+i)->cScore;
summath+=(student+i)->mathScore;
}
printf("C语言平均成绩为:%lf ",sumc/studentNum);
printf("数学平均成绩为:%lf ",summath/studentNum);
printf(" 按任意键继续……");
getch();
}
voidAddStudent(Student*student)
{
system("cls");
if(studentNum==MAXSTUDENT)
{
printf("人数已满,按任意键返回…… ");
getch();
}
printf("分别录入座号、C语言成绩、数学成绩: ");
intid=0;
intcScore=0;
intmathScore=0;
scanf("%d%d%d",&id,&cScore,&mathScore);
for(inti=0;i<studentNum;i++)
if((student+i)->id==id)
{
printf("座号重复,按任意键返回…… ");
getch();
return;
}
(student+studentNum)->id=id;
(student+studentNum)->cScore=cScore;
(student+studentNum)->mathScore=mathScore;
studentNum++;
}
voidSelectFromID(constStudent*student)
{
system("cls");
CheckData();
printf("输入查询ID: ");
intid=0;
scanf("%d",&id);
printf("查询结果: ");
for(inti=0;i<studentNum;i++)
if(id==(student+i)->id)
{
printf("C语言成绩为:%d 数学成绩为:%d ",(student+i)->cScore,(student+i)->mathScore);
break;
}
printf(" 按任意键继续……");
getch();
}
voidSortForCount(Student*student)
{
system("cls");
CheckData();
for(inti=0;i<studentNum;i++)
{
for(intj=studentNum-1;j>i;j--)
if(((student+j)->cScore+(student+j)->mathScore)>((student+j-1)->cScore+(student+j-1)->mathScore))
{
Studentstu;
stu=*(student+j);
*(student+j)=*(student+j-1);
*(student+j-1)=stu;
}
}
}
voidSortForN(Student*student,intn)
{
SortForCount(student);
if(!studentNum)
return;
n=n>studentNum?studentNum:n;
for(inti=0;i<n;i++)
printf("第%d名: ID:%d C语言成绩为:%d 数学成绩为:%d 总分为:%d ",i+1,(student+i)->id,(student+i)->cScore,(student+i)->mathScore,(student+i)->cScore+(student+i)->mathScore);
printf(" 按任意键继续……");
getch();
}
voidUpdateScore(Student*student)
{
system("cls");
CheckData();
printf("输入修改ID: ");
intid=0;
scanf("%d",&id);
inti=0;
for(;i<studentNum;i++)
if(id==(student+i)->id)
break;
if(i==studentNum)
printf(" 查无此人,按任意键继续……");
else
{
printf("输入欲修改的C语言成绩、数学成绩: ");
intcScore=0;
intmathScore=0;
scanf("%d%d",&cScore,&mathScore);
(student+i)->cScore=cScore;
(student+i)->mathScore=mathScore;
printf(" 按任意键继续……");
}
getch();
}
voidRunStudent(Student*student)
{
while(1)
{
ShowMainMenu();
charchGet=getch();
switch(chGet)
{
case'1':
AddStudent(student);
break;
case'2':
ShowCountScore(student);
break;
case'3':
ShowClassAvg(student);
break;
case'4':
SelectFromID(student);
break;
case'5':
SortForCount(student);
for(inti=0;i<studentNum;i++)
printf("第%d名: ID:%d C语言成绩为:%d 数学成绩为:%d 总分为:%d ",i+1,(student+i)->id,(student+i)->cScore,(student+i)->mathScore,(student+i)->cScore+(student+i)->mathScore);
printf(" 按任意键继续……");
getch();
break;
case'6':
{
intn=0;
printf("输入N: ");
scanf("%d",&n);
SortForN(student,n);
}
break;
case'7':
UpdateScore(student);
break;
case'0':
return;
default:
break;
}
}
}
intmain()
{
Student*allStudent=(Student*)malloc(MAXSTUDENT*sizeof(Student));
memset((void*)allStudent,0,MAXSTUDENT*sizeof(Student));
RunStudent(allStudent);
return0;
}
『陆』 急求!编程实现输入一个学生的姓名学号,及三门功课成绩,计算每个学生平均分;输入学号,输出该学生数据
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char id[16]; // 学生编号
float scores[3]; // 语文数学英语成绩
}Student;
int main() {
Student student;
printf("请输入学生的编号 语文成绩 数学成绩 英语成绩 ");
scanf("%s%g%g%g", student.id, &student.scores[0], &student.scores[1], &student.scores[2]);
printf("学生信息如下: ");
printf("编号:%s ", student.id);
printf("语文数学以及英语成绩:%g %g %g ", student.scores[0], student.scores[1], student.scores[2]);
printf("平均成绩:%g ", (student.scores[0] +student.scores[1] + student.scores[2])/3);
return 0;
}
『柒』 用C语言编程实现一个简单的学生成绩管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<memory.h>
typedefstructstudent
{
charnum[16];
charname[20];
floatscore[4];
structstudent*next;
}stu;
stu*head; //链头指针
stu*create() //创建链表,从文件读取信息
{
printf("Readingstudentinformation: ");
stu*p=NULL; //指针,指向个待插入的结点
stu*q=NULL; //指针,用于在其后插入结点
head=NULL; //一开始链表为空
FILE*r=fopen("input.dat","r");
p=(stu*)malloc(sizeof(stu));
while(fscanf(r,"%s%s%f%f%f",p->num,p->name,&p->score[0],&p->score[1],&p->score[2])!=EOF)
{
p->score[3]=(p->score[0]+p->score[1]+p->score[2])/3.0;
fprintf(stdout,"%s %s %g %g %g %.2f ",p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3]);
p->next=NULL;
if(head==NULL) //head为空,要插入第一个
{
head=p;
} //结点,让头指针指向结点p
else
{ //否则不是头结点,应将p结点
q->next=p; //插入到q结点的后面
}
q=p; //q指向当前最后一个结点
p=(stu*)malloc(sizeof(stu));
}
fclose(r);
if(head!=NULL)
{
q->next=NULL; //让q所指的最后一个结点的指针域为空说明这已是链尾了
}
returnhead; //返回头指针
}
voidsort(stu**head,intn)
{
FILE*w=NULL;
if(n==0)
{
w=fopen("sortByMath.dat","w");
}
elseif(n==1)
{
w=fopen("sortByEnglish.dat","w");
}
elseif(n==2)
{
w=fopen("sortByComputer.dat","w");
}
elseif(n==3)
{
w=fopen("sortByAvg.dat","w");
}
stu*q,*t,*p;
stu*new_head=newstu;
new_head->next=*head;
p=new_head;
t=NULL;
while(t!=new_head->next)
{
p=new_head;
q=p->next;
while(q->next!=t)
{
if((p->next->score[n])<(q->next->score[n]))
{
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
}
p=p->next;
q=p->next;
}
t=q;
}
*head=new_head->next;
p=*head;
q=p->next;
printf("学号 姓名 数学 英语 计算机 平均成绩 ");
intgrade=1;
while(p!=NULL)
{
fprintf(w,"%s %s %g %g %g %.2f %d ",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],grade);
fprintf(stdout,"%s %s %g %g %g %.2f %d ",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],grade);
if(q!=NULL&&q->score[3]<p->score[3])grade+=1;
p=p->next;
if(q!=NULL)q=q->next;
}
printf(" ");
fclose(w);
}
voidcount(stu*head)
{
floatcnt[4][8];
inti,j;
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
{
if(j!=2)cnt[i][j]=0;
elsecnt[i][j]=100;
}
}
stu*r=head;
while(r!=NULL)
{
r=r->next;
}
}
intmain()
{
head=create();
printf("Sortingbyaveragescore: ");
sort(&head,3);
system("pause");
return0;
}
『捌』 怎样用java编写程序实现学生成绩等级划分,输入考试成绩,程序会相应输出成绩等级
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner x = new Scanner(System.in);
System.out.println("请输入成绩");
int a=x.nextInt();
int n=a/10; //百分制转换为等第
switch(n){
case 10: //表示如果n=10,也就是一百分,输出A
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("FAIL"); //低于六十分的输出不及格 FAIL
break;
default:System.out.println(" 请输入一个正确的成绩"); //输入的不是百分制,报错
}
}
}
『玖』 用C语言编程 学生成绩统计
#include<stdio.h>
voidprint1(inta[],intn){
for(inti=0;i<n;i++)
printf("%d",a[i]);
printf(" ");
}
intmain()
{
inta[30],i,j,k=0,m=0,b[30],c[30],d[10]={0};
for(i=0;i<30;i++){
intscore;
scanf("%d",&score);
if(score<0){
j=i;
break;
}
a[i]=score;
}
for(i=0;i<j;i++){
if(a[i]>60)
b[k++]=a[i];
else
c[m++]=a[i];
d[a[i]/10]++;
}
printf("及格人数%d ",k);
print1(b,k);
printf("不及格人数%d ",m);
print1(c,m);
for(i=0;i<10;i++){
printf("%d到%d占:%d%% ",i,(i+1)*10-1,d[i]*10);
}
}