編程實現學生成績
『壹』 編程實現:從鍵盤輸入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);
}
}