程序計算學生的平均成績
❶ 編寫一個java程序來計算學生考試成績的平均分和他們的分數等級。你可以假設以下數據:
publicclassScore{
//記錄學生的姓名
privateString[] name;
//記錄分數
privateint[][] ;
//記錄分數等級
privatechar[] grade;
//存儲數據
privatevoidsaveData(){
this.name=newString[]{"Johnson","Aniston","Cooper","Gupta","Blair"};
this.fraction=newint[][]{{85,83,77,91,76},{80,90,95,93,48},{78,81,11,90,73},{92,83,30,69,87},{23,45,96,38,59}};
this.grade=newchar[this.name.length];
}
publicScore(){
//在構造函數中調用saveData存儲數據。
this.saveData();
}
//計算分數等級。傳入一個分數,返回該分數的評分等級。
privatechargetGrade(intfraction){
if(fraction>100){
//100分的考卷分數居然超過了100,肯定和老師有交易,給你個X!
return'X';
}
elseif(fraction>=85){
return'A';
}
elseif(fraction>=75){
return'B';
}
elseif(fraction>=65){
return'C';
}
elseif(fraction>=50){
return'D';
}
return'F';
}
//輸出成績/平均分/評分/班級平均分/班級評分
publicvoidprintScore(){
intaverage=0;//存儲班級的平均分
for(inti=0;i<this.fraction.length;i++){
System.out.print(this.name[i]+" ");//輸入學生的名字( 是輸出製表符,相當於按一下Tab的效果)
inttemp=0;//臨時存儲數據的變數
for(intx=0;x<this.fraction[i].length;x++){
temp+=this.fraction[i][x];
System.out.print(this.fraction[i][x]+" ");
}
temp=temp/this.fraction[i].length;//此時temp的值就是該學生的平均分
this.grade[i]=this.getGrade(temp);//存入平均分
System.out.println("平均分:"+temp+" 評價"+this.grade[i]);//輸出該學生的平均分和評價
average+=temp;
}
average=average/this.name.length;
System.out.println("班級平均分:"+average+" 班級評價"+this.getGrade(average));
}
publicstaticvoidmain(String[]args){
newScore().printScore();
}
}
運行結果:
Johnson 85 83 77 91 76 平均分:82 評價B
Aniston 80 90 95 93 48 平均分:81 評價B
Cooper 78 81 11 90 73 平均分:66 評價C
Gupta 92 83 30 69 87 平均分:72 評價C
Blair 23 45 96 38 59 平均分:52 評價D
班級平均分:70 班級評價C
❷ 20.以下程序的功能是:按順序讀入10名學生的4門課程的成績,計算出每位學生的平均分並輸出,程序如下: #in
int[][] students = new int[10][4];
for(int i = 0; i < students.length; i++){
for(int j = 0; j < students[i].length; j++){
System.out.println("輸入專第 "+(i+1)+" 位同學的屬第 "+(j+1)+" 門成績:");
Scanner sc = new Scanner(System.in);
students[i][j] = Integer.parseInt(sc.next().toString());
}
}
for(int i = 0; i < students.length; i++){
int sum = 0;
for(int j = 0; j < students[i].length; j++){
sum += students[i][j];
}
System.out.println("第 "+(i+1)+" 為同學成績為:"+sum+", 平均分為:"+sum/students[i].length);
}
❸ 編程C語言 輸入n個學生成績,計算他們的平均值並輸出所有高於平均的學生成績。 求解 !!
1 指針來
#include<stdio.h>
#define N 10
main()
{int i,num=0,max=0;float s=0,v,score[N],*p;
for(p=score,i=0;i<N;i++)
{scanf("%f",p+i);
if(*(p+i)>=score[max])
max=i;
s+=*(p+i);
}
v=s/N;
for(p=score,i=0;i<N;i++)
if(*(p+i)>v)
num++;
printf("average=%.1f,num=%d,%.1f\n",v,num,score[max]);
}
2.
#include<stdio.h>
#define N 10
main()
{int i,max=0,g=0,s=0,a[N];double v;
for(i=0;i<N;i++)
{scanf("%d",a+i);s=s+a[i];if(a[i]>=a[max])max=i;}
v=s/N;
for(i=1;i<=N;i++)
if(a[i]>v)
g++;
printf("大於自平均成績%.2lf有%d人其中最高分%d",v,g,a[max]);
}
❹ 有鍵盤輸入三個學生的數學考試成績,計算他們的平均分並且保留兩位小數,c語言程序設計題
#include<stdio.h>
voidmain()
{
floata1,a2,a3;//記錄源三個學生的數學成績
floatavg=0.0;
printf("pleaseinputscoreofmath!! ");
printf("firststudent:");
scanf("%f",&a1);
printf("secondstudent:");
scanf("%f",&a2);
printf("thirdstudent:");
scanf("%f",&a3);
avg=(a1+a2+a3)/3;//平均成績
printf("theaverageofscoreis:%.2f ",avg);
}
夠簡單吧
❺ 利用JAVA編寫程序,用一維數組保存20個學生的某門課程的成績,計算平均成績,並輸出。
以下程序完成從鍵盤輸入20個學生的成績求平均值,不過有一個不足就是輸入的成績不能是小數,還得改改。
import java.util.Scanner;
public class Results {
//從鍵盤獲取成績
public float[] cj ()
{
System.out.println("請輸入成績");
Scanner input=new Scanner(System.in);
//float f=input.nextInt();
float [] number = new float[20];
for(int i =0;i<20;i++)
{
number[i]=input.nextInt();
if(i<19)
{System.out.println("數組number["+i+']'+"=:"+number[i]+",請輸入成績:");}
else
{System.out.println("數組number["+i+']'+"=:"+number[i]+'。');}
}
return number;
}
//求平均成績
public void average(float [] number)
{
float n=0,av=0;
for(int j=0;j<number.length;j++)
{
//獲得總成績
n+=number[j];
}
av=n/number.length;
System.out.println("平均成績:"+av);
}
public static void main(String [] args)
{
Results r=new Results();
r.average(r.cj());
}
}
❻ C語言程序,請你編寫一個程序計算每個學生的平均成績並按降序排序
你這個可以用鏈表來寫,同類型我已經寫過幾次鏈表的,需要你可以去我回答記錄里找。
這次,我不用鏈表,直接用2維數組,冒泡排序,那你參考吧。
原理:1、數組內存的連續性 2、利用指針冒泡排序
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
voidprStu(float*stu);//列印學生成績參數:數組首地址
voidjx(float*p);//降序排列
intmain()
{
floatstu[50][6],*p=&stu[0][0],num[4];//stu:50學生信息1列為學生編號2~5列為4科成績6列為平均分
inti=0,count=0;
//--這段我是用隨機數做50個學生的成績,我懶得錄入200個成績!!,你要手輸,就把這段隨機數改成輸入函數---
srand(time(NULL));
while(i++<300)
{
count++;
if(count==1)//學生編號存儲
*p++=(float)i/6+1;
if(count>1&&count<6)//隨機2位數作為4科成績
*p++=(float)(rand()%100);
if(count==6)
{
count=0;
num[0]=*(p-1);
num[1]=*(p-2);
num[2]=*(p-3);
num[3]=*(p-4);
*p++=(num[0]+num[1]+num[2]+num[3])/4;//4科平均分
}
}
//------------------------------------------------------------
prStu(&stu[0][0]);
jx(&stu[0][0]);
printf("
降序排列後的數據:
");
prStu(&stu[0][0]);
return0;
}
voidjx(float*p)//降序排列
{
intcount1=0,count2;
float*p1=NULL,*p2=NULL,id,num[4],pj;
while(count1++<49)
{
p1=p+5;//p1p2在迭代中分別指向前後兩個學生的平均分
p2=p1+6;
count2=count1-1;
while(count2++<49)
{
if(*p1<*p2)//冒泡排序
{
id=*(p1-5);
*(p1-5)=*(p2-5);
*(p2-5)=id;
num[0]=*(p1-4);
num[1]=*(p1-3);
num[2]=*(p1-2);
num[3]=*(p1-1);
*(p1-4)=*(p2-4);
*(p1-3)=*(p2-3);
*(p1-2)=*(p2-2);
*(p1-1)=*(p2-1);
*(p2-4)=num[0];
*(p2-3)=num[1];
*(p2-2)=num[2];
*(p2-1)=num[3];
pj=*p1;
*p1=*p2;
*p2=pj;
}
p2+=6;
}
p+=6;
}
}
voidprStu(float*p)//列印學生成績參數:數組首地址
{
intcount=0,i=0;
printf("%19s%16s%6s%6s%6s%8s
","學生sID","數學","語文","外語","物理","平均分");
while(i++<300)
{
count++;
if(count==1)
printf("編號%02d的學生4科成績及平均分為:",(int)*p++);
if(count>1&&count<6)
printf("%02d",(int)*p++);
if(count==6)
{
count=0;
printf("%.2f
",*p++);
}
}
}
❼ 編寫一個程序,計算若干學生的某門功課的平均成績,找出最高分和最低分(c語言作業,不太會,拜託了)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 5
void main()
{
float a[N],aver,stdev,max,min;
int i;
for(i=0;i<N;i++)
scanf("%f",&a[i]);
aver=0;max=min=a[i]=0;
for(i=0;i<N;i++)
{aver=aver+a[i];
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];}
aver=aver/N;
stdev=0;
for(i=0;i<N;i++)
stdev=stdev+(a[i]-aver)*(a[i]-aver);
stdev=sqrt(stdev/N);
for(i=0;i<N;i++)
printf("%f,%f,%f,%f,%f",aver,stdev,max,min);
}
❽ 編寫一個計算一位學生三門課平均成績的程序。要求學生成績從鍵盤輸入。
#include<stdio.h>
main()
{
float yuwen,shuxue,yingyu,avg;
printf("請輸入該學生的三門成內績:");
scanf("%f,%f,%f",&yumen,&shuxue,&yingyu);
avg=(yumen+shuxue+yingyu)/3;
printf("%.1f\n",avg);
}
完成容
❾ C語言程序,請你編寫一個程序計算每個學生的平均成績
#include<stdio.h>
void main()
{
float a[10][10];//用來存放10名學生的5門成績,最後一位用於存放平均成績
int i,j;
float sum=0.0;
for(i=0;i<10;i++)
{
printf("請輸入第%d個學生的5門成績",i+1);
for(j=0;j<5;j++)
{
scanf("%f",&a<i>[j]);
sum=sum+a<i>[j];
}
a<i>[10]=sum/5.0;
}
printf("10名學生的成績及平均分 ");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%.3f",a<i>[j]);
printf(" ");
}
}
(9)程序計算學生的平均成績擴展閱讀:
printf的用法
格式
printf函數的原型為:
#include<stdio.h>
int printf(const char*format,...);
在講每一個函數的時候都會先把它的函數原型寫出來,這個原型你們現在看不懂不要緊,等到學完C語言之後再來看這個原型就會發現它是很有參考意義的!它對深刻理解函數有著很大的價值。
printf的格式有四種:
1)printf("字元串 ");
#include<stdio.h>
int main(void)
{
printf("Hello World! ");// 表示換行
return 0;
}
其中 表示換行的意思。它是一個轉義字元,前面在講字元常量的時候見過。其中n是「new line」的縮寫,即「新的一行」。
此外需要注意的是,printf中的雙引號和後面的分號必須是在英文輸入法下。雙引號內的字元串可以是英文,也可以是中文。
2)printf("輸出控制符",輸出參數);
純文本復制
#include<stdio.h>
int main(void)
{
int i=10;
printf("%d ",i);/*%d是輸出控制符,d表示十進制,後面的i是輸出參數*/
return 0;
}