輸入五個學生的三門課程成績
『壹』 用C語言編寫程序:有五個學生的三門課程的成績,求每門課程的平均成績
程序設計思路:首先我們需要定義一個學生的結構體,用於存放學生信息;接著是3個方法,一個輸入學生信息的方法,一個是計算學生每門課程平均成績的,最後一個是輸出學生所有信息,包括計算好的平均成績,具體實現代碼如下:
#include<stdio.h>
#include<stdlib.h>#defineARRAY_LEN100 /*數組長度*/
/*定義學生結構體*/
typedefstruct{
intno;/*學號*/
floatscore1;/*成績1*/
floatscore2;/*成績2*/
floatscore3;/*成績3*/
floattotalScore;/*總分*/
floataverageScore;/*平均分*/
}student;
/*輸入學生信息*/
voidinputInfo(studentstu[],intstuIndex){
inti;
printf("第%d名學生↓ ",stuIndex+1);
printf("學號:");
scanf("%d",&stu[stuIndex].no);
printf("成績1:");
scanf("%f",&stu[stuIndex].score1);
printf("成績2:");
scanf("%f",&stu[stuIndex].score2);
printf("成績3:");
scanf("%f",&stu[stuIndex].score3);
putchar(' ');
}
/*計算平均成績*/
voidcalculationScore(studentstu[],intstuIndex){
stu[stuIndex].totalScore=stu[stuIndex].score1+stu[stuIndex].score2+stu[stuIndex].score3;
stu[stuIndex].averageScore=stu[stuIndex].totalScore/3;
}/*輸出學生成績*/voidprintInfo(studentstu[],intstuIndex){
inti;
printf("%d ",stu[stuIndex].no);
printf("%.2f ",stu[stuIndex].score1);
printf("%.2f ",stu[stuIndex].score2);
printf("%.2f ",stu[stuIndex].score3);
printf("%.2f",stu[stuIndex].averageScore);
putchar(' ');
}
intmain(void){
intstuNum=5,i;
studentstu[ARRAY_LEN];
/*輸入、計算*/
puts("請輸入學生信息:");
putchar(' ');
for(i=0;i<stuNum;i++){
inputInfo(stu,i);
calculationScore(stu,i);
}
putchar(' ');
printf("%d名學生成績輸入完畢!",stuNum);
putchar(' ');
puts("================================================ ");
/*輸出*/
puts("學號 成績1 成績2 成績3 平均成績");
for(i=0;i<stuNum;i++)
printInfo(stu,i);
getch();/*屏幕暫留*/
return0;
}
程序的運行結果:
(1)輸入五個學生的三門課程成績擴展閱讀:
具有相同數據類型的數據我們可以用數組來存放,但對於上面的學生信息,包含多種數據類型,所以只能使用結構體來存放。
結構體的定義形式為:
struct 結構體名{
結構體所包含的變數或數組
};
結構體是一種集合,它裡麵包含了多個變數或數組,它們的類型可以相同,也可以不同,每個這樣的變數或數組都稱為結構體的成員(Member)。
結構體成員的定義方式與變數和數組的定義方式相同,只是不能初始化。注意大括弧後面的分號;不能少,這是一條完整的語句。結構體也是一種數據類型,它由程序員自己定義,可以包含多個其他類型的數據。
像 int、float、char 等是由C語言本身提供的數據類型,不能再進行分拆,我們稱之為基本數據類型;而結構體可以包含多個基本類型的數據,也可以包含其他的結構體,我們將它稱為復雜數據類型或構造數據類型。
『貳』 編程列印學生數據:有5個學生,每個學生的數據包括學號、姓名、三門課程成績,從鍵盤輸入5個學生數據,
void main()
{/*二維數組*/
int i,j,a[3][5],b[3];
float temp_all=0,temp_c=0,s=0;
char *c[5]={"張三","王五","李四","趙六","周八"};
char *t[3]={"math","c","foxpro"};
//void change(int a[],int t);
for(i=0;i<5;i++)
{
printf("input %s 's score:",c[i]);
for(j=0;j<3;j++)
{
scanf("%d",&b[j]);
a[j][i] = b[j];
temp_c += b[j];
temp_all += a[j][i];
}
printf("%s 's average:%f \n",c[i],temp_c/3);
temp_c = 0;
}
printf("all_average:%f \n",temp_all/15);
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
{
s += a[j][i];
}
printf("%s average:%f \n",t[j],s/5);
s = 0;
}
『叄』 有五個學生,每個學生有三門課的成績,從鍵盤上輸入學生的學號,姓名,三門課成績,把它們存放到磁碟中
示例:
import java.util.Scanner;
class Test50 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//定義學生類數組,裡面存放五個學生的信息
Student[] stus = new Student[5];
System.out.println("請輸入5個學生的信息:");
for(int i=0;i<stus.length;i++){
String str = sc.nextLine();
//001 張三 78 88 90輸入以空格分隔
//利用String類中的split方法將字元串分割成字元串數組
String[] strs = str.split(" ");//strs[0],strs[1]...
//創建學生對象
Student stu = new Student();
stu.sid = strs[0];
stu.name = strs[1];
//利用Integer.ParseInt()方法,將字元串轉換為整型
stu.chineseGrade =Integer.parseInt(strs[2]);
stu.mathGrade = Integer.parseInt(strs[3]);
stu.englishGrade = Integer.parseInt(strs[4]);
stu.averageGrade = (stu.chineseGrade+stu.mathGrade+stu.englishGrade)/3;
//將每次創建的學生對象賦值給學生數組
stus[i] = stu;
}
for(int i=0;i<stus.length;i++){
System.out.println("學號:"+stus[i].sid+",姓名:"+stus[i].name+",語文:"+stus[i].chineseGrade+",數學:"+stus[i].mathGrade+",英語:"+stus[i].englishGrade+",平均成績:"+stus[i].averageGrade);
}
}
}
//定義一個Student類
class Student{
String sid;
String name;
int chineseGrade;
int mathGrade;
int englishGrade;
int averageGrade;
}
(3)輸入五個學生的三門課程成績擴展閱讀
缺點:
1、C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。
2、C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。也就是說,對用C語言的人,要求對程序設計更熟練一些。
『肆』 已知某班5名學生的三門課成績試編寫程序,輸入這5個學生的三門課成績a[5][3],輸出每門課成績的
#include <stdio.h>
/*定義結構體*/
struct student
{
int a;
int b;
int c;
float ave;
};
int main()
{
struct student sco[5];
printf("輸入5個學生的3們成績:\n");
for(i=0;i<5;i++)
{
scanf("%d%d%d",sco[i].a,sco[i].b,sco[i].c);
sco[i].ave=(float)(sco[i].a+sco[i].b+sco[i].c)/3;
}
printf("5名學生平均成績分別為:\n");
for(i=0;i<5;i++)
{
printf("%.2f\n",sco[i].ave);
}
return 0;
}
————————————————
如果以上出現「%」符號,那是為何防止系統誤識我把半形符號寫成全形符號了,注意改回來。
————————————————
親愛的LZ,如果我的回答能夠幫你解決問題,或是對你有幫助,或是對你今後的發展造成積極的影響,那麼請您的回答吧,同時更迫切地希望您能夠在的時候幫我打上「能解決」和「原創」,然後把兩行的五顆五角星分別點亮,點亮五角星就是點亮你我的希望。 我沖11級了,需要很多綜合聲望,感謝您的幫助,衷心祝願您快樂每一天~
『伍』 編寫程序要求:輸入5個學生3門課程的成績,
你好。
程序清單:
#include<stdio.h>
#include<string.h>
struct student //學生結構體
{
char name[30]; // 學生姓名
double score[3]; //三門成績
double aver; //存平均成績
} st[5],temp; //五個學生
int main()
{
double sum;//定義存放每個學生總成績的變數
int i,j,count;
// 輸入學生信息
for(i=0;i<5;i++)
{
printf("請輸入%d號學生姓名:",i+1);
scanf("%s",st[i].name);
sum=0.0; //為每個學生的總成績賦初值
for(j=0;j<3;j++)
{
printf("請輸入%d號學生第%d門課程成績:",i+1,j+1);
scanf("%lf",&st[i].score[j]); //循環輸入每個學生的成績
sum=sum+st[i].score[j]; //累加每個學生的總成績
}
st[i].aver=sum/3.0;//計算每個學生的平均成績
}
//利用冒泡法對平均成績進行排序
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{
if(st[i].aver<st[j].aver)
{
memcpy(&temp,&st[i],sizeof(struct student));
memcpy(&st[i],&st[j],sizeof(struct student));
memcpy(&st[j],&temp,sizeof(struct student));
}
}
// 輸出結果
printf(" 至少有兩個成績在90分以上的學生有: ");
for(i=0;i<5;i++)
{
count=0;
for(j=0;j<3;j++)
{
if(st[i].score[j]>=90)
{
count++;
}
}
if(count>=2)
printf("%s ",st[i].name);
}
printf(" 平均分由高到低進行排序: ");
for(i=0;i<5;i++)
{
printf("%s %.1f ",st[i].name,st[i].aver);
}
return 0;
}
運行結果:
望採納!
『陸』 C語言編程:輸入5名學生3門課程成績
您好!下面是我寫的程序希望對您有用!
#include<stadio.h>
void main()
{
int x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5,m1,m2,m3,m4,m5,n1,n2,n3;
printf("輸入5名同學的3門課程的成績 x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5\n");
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&x1,&x2,&x3,&x4,&x5,&y1,&y2,&y3,&y4,&y5,&z1,&z2,&z3,&z4,&z5);
n1=(x1+x2+x3+x4+x5)/5;
n2=(y1+y2+y3+y4+y5)/5;
n3=(z1+z2+z3+z4+z5)/5;
m1=(x1+y1+z1)/3;
m2=(x2+y2+z2)/3;
m3=(x3+y3+z3)/3;
m4=(x4+y4+z4)/3;
m5=(x5+y5+z5)/3;
printf("%d,%d,%d,%d,%d,%d,%d,%d",m1,m2,m3,m4,m5,n1,n2,n3);
}
『柒』 有五個學生,每個學生有三門課程的成績,從鍵盤輸入學生數據(包括學號,姓名,3門課程成績),計算出平均成績
經測試,程序正確運行,並把輸入結果保存在stud文件中。
源代碼如下:
#include <stdio.h>
#define ID 11
typedef struct _stu
{
char id[ID];
int sco1;
int sco2;
int sco3;
}stu;
int main()
{
int i;
stu s[5];
FILE *fp;
float ave;
printf("請輸入五個學生的學號和三門成績:\n");
for(i=0;i<5;i++)
{
scanf("%s%d%d%d",s[i].id,&s[i].sco1,&s[i].sco2,&s[i].sco3);
}
if((fp=fopen("stud","w"))==NULL)
{
printf("文件打開失敗\n");
return ;
}
for(i=0;i<5;i++)
{
ave=(s[i].sco1+s[i].sco2+s[i].sco3)/3.0;
fprintf(fp,"%s %d %d %d %.2f\n",s[i].id,s[i].sco1,s[i].sco2,s[i].sco3,ave);
}
fclose(fp);
return 0;
}
『捌』 輸入五個學生三門課程的成績,並進行如下操作。 1 計算並輸出每門課程的平均分 2 輸出每門
用excel軟體可以解決的。
『玖』 有5個學生,每個學生的數據包括學號、姓名、三門課的成績,從鍵盤輸入5個學生數據,要求輸出三門課總平均
不需要那麼麻煩,只需要把你的姓名以及考號輸入電腦就可以查詢你的各科成績,也能得到你總成績的平均分兒。
『拾』 輸入五個學生3門課的成績,計算和輸出每個學生和每門課程的平均成績。
#include<stdio.h>
#defineN5 //定義輸入學生的個數
structstudent//定義學生結構體
{
charnum[6];
charname[8];
intscore[4];
floatavr;
}stu[N];
voidmain()
{
inti,j,max,maxi,sum;
floataverage;
for(i=0;i<N;i++)
{
printf("Inputscoresofstudent%d: ",i+1);//輸入每個學生的數據
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
printf("score%d:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
average=0;
max=0;
maxi=0;
for(i=0;i<3;i++)//求平均數
{
sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
stu[i].avr=sum/3.0;
average+=stu[i].avr;
if(sum>max)
{
max=sum;
maxi=i;
}
}
average/=N;
printf(" NO. name score1 score2 score3 average ");
for(i=0;i<N;i++)//輸出每個學生的信息
{
printf("%5s%8s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%9d",stu[i].score[j]);
printf("%8.2f ",stu[i].avr);
}
printf("average=%7.2f ",average);
printf("Thehighestscoreis:%s,scoretotal:%d.",stu[maxi].name,max);
}
驗證吧~~