c語言用結構體編寫學生成績
⑴ 用結構體完成N個學生M名課程的成績排序 用C語言編寫
這里是4名學生一門成績的排序,不過中間還有生日,希望能給你帶來點靈感吧!源代碼如下:
#include <stdio.h>
struct student_record
{
char name[8];
struct birth
{
int year;
int month;
int day;
}date;
int score;
}student[4];
void main()
{
struct student_record student[4];
struct student_record stu;
int i,j;
printf("please input date:\n");
for(i=0;i<4;i++)
scanf("%s%d%d%d%d",student[i].name,&student[i].date.year,
&student[i].date.month,&student[i].date.day,&student[i].score);
printf("OUTPUT:\n");
printf("NAME BIRTH SCORE\n");
for(j=1;j<=3;j++)
for(i=0;i<4-j;i++)
{
if(student[i].score<student[i+1].score)
{
stu=student[i];
student[i]=student[i+1];
student[i+1]=stu;
}
}
for(i=0;i<4;i++)
printf("%s %d,%d,%d %d\n",student[i].name,student[i].date.year,
student[i].date.month,student[i].date.day,student[i].score);
}
⑵ 用c語言結構體編寫函數,計算每個學生的平均成績。
#include<stdio.h>
struct student
{
權long int num;
char name[8];
float score[3];
double ave;
}stu[2];
void fun(struct student * p)
{
double s;
int i,j;
for(i=0;i<2;i++)
{
s=0;
for(j=0;j<3;j++)
s+=p[i].score[j];
p[i].ave=s/3.0;
}
for(i=0;i<2;i++)
printf("Case #%d:ave= %4.2f\n",i+1,p[i].ave);
}
void main()
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%f",&stu[i].score[j]);
fun(stu);
}
⑶ c語言編程,用結構體編學生成績系統
#include <stdio.h>
#include <string.h>
#define STU_NUM 10//學生數
#define SCORE_NUM 6//每個學生的科目數
typedef struct /*定義結構體數組*/
{
char num[20]; /*學號*/
char name[20]; /*姓名*/
float score[SCORE_NUM]; /*成績*/
float total;//總分
float average;//平均分
} Student;
Student stu[STU_NUM];
//輸入學生信息
void input()
{
int i,j;
printf("請輸入%d個學生的信息:\n",STU_NUM);
for(i=0;i<STU_NUM;i++)
{
printf("學號:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d的成績:",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}
//輸出學生信息
void output()
{
int i,j;
//列印表頭
printf("學號\t姓名\t");
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d\t",j+1);
}
printf("總分\t平均分\n");
//列印所有學生信息
for(i=0;i<STU_NUM;i++)
{
printf("%s\t%s\t",stu[i].num,stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("%3.2f\t",stu[i].score[j]);
}
printf("%3.2f\t%3.2f\n",stu[i].total,stu[i].average);
}
}
//計算總分和平均分
void process()
{
int i,j;
for(i=0;i<STU_NUM;i++)
{
stu[i].total=0;
for(j=0;j<SCORE_NUM;j++)
{
stu[i].total+=stu[i].score[j];
}
stu[i].average=stu[i].total/SCORE_NUM;
}
}
//排序並輸出
void sort()
{
Student tStu;
int i,j;
for(i=0;i<STU_NUM;i++)
{
for(j=STU_NUM-1;j>i;j--)
{
if(stu[j].total>stu[j-1].total)
{
tStu=stu[j];
stu[j]=stu[i];
stu[i]=tStu;
}
}
}
}
void main()
{
input();
process();
sort();
output();
}
經供參考,具體自己調試。
⑷ C語言中學生成績結構體
增加清除緩沖區
scanf("%d",&a[i].C);
fflush(stdin);
⑸ 如何利用結構體類型編程管理班級學生課程成績(C語言)
級學生課程成績,定義一個結構體類型數組用於存放n名學生姓名及各課程成績,編程實現當
⑹ c語言 輸入2個學生姓名 和成績 ,然後輸出他們的平均成績 用結構體怎麼寫
#include<stdio.h>
#include<string.h>
structStu{
charname[20];
intscore;
}stu[2];
intmain()
{
printf("請輸入第一個學生的姓名和成績:專 ");
scanf("%s%d",&stu[0].name,&stu[0].score);
printf("請輸入第二個學生的姓名和成績: ");
scanf("%s%d",&stu[1].name,&stu[1].score);
floataverage=(stu[0].score+stu[1].score)/2;
printf("平均分是屬%f ",average);
return0;
}
⑺ C語言編程 用結構體的知識編程輸入並列印學生的成績與信息
#include<stdio.h>
#define N 10
struct Student
{
char id[8],name[8];
int s1,s2,s3;
float ave_s;
};
int main()
{
struct Student s[N];
int i,p;
/* 輸入學生成績信息,並計算平均成績 */
for(i=0; i<N; i++)
{
printf("輸入學生 %d 的學號 姓名 和3門課的成績:",i+1);
scanf("%s%s%d%d%d",&s[i].id,&s[i].name,&s[i].s1,&s[i].s2,&s[i].s3);
s[i].ave_s=(s[i].s1+s[i].s2+s[i].s3)/3.0;
}
/* 輸出每個學生的平均成績 */
printf(" 學號 平均成績\n");
for(i=0; i<N; i++)
printf("%8s%8.1f\n\n",s[i].id,s[i].ave_s);
/* 查找平均成績最高的學生 */
p=0;
for(i=0; i<N; i++)
if(s[i].ave_s>s[p].ave_s)
p=i;
/* 輸出平均成績最高的學生信息 */
printf(" 學號 姓名 成績1 成績2 成績3 平均成績\n");
printf("%8s%8s%8d%8d%8d%8.1f\n",s[p].id,s[p].name,s[p].s1,s[p].s2,s[p].s3,s[p].ave_s);
return 0;
}
⑻ 定義一個學生成績的結構體數組,編寫函數對幾門課程的成績求平均成績。用c語言謝謝了
#include <stdio.h>
struct stud
{
int yu;
int shu;
int wai;
int wu;
int hua;
int sheng;
}score[3];
void main()
{
int i;
float aver[3];
printf("輸入3個學生語數外物化生的成績:\n");
for(i = 0;i<3;i++)
{ //這里做的是整數的,若想帶小數回點的,改成答float就行
scanf("%d%d%d%d%d%d",&score[i].yu,&score[i].shu,&score[i].wai,&score[i].wu,&score[i].hua,&score[i].sheng);
aver[i] = (score[i].yu+score[i].shu+score[i].wai+score[i].wu+score[i].hua+score[i].sheng)/6;
}
for(i = 0;i<3;i++)
printf("%f\n",aver[i]);
}
⑼ 求高手用C語言結構體編寫一個簡單的學生成績管理系統,實現:對學生成績的錄入,包括ID、name、
有,要的留郵箱.....