c語言統計學生成績分布
㈠ 使用c語言編寫程序,分別統計出每個學生的平均成績。
#include<stdio.h>
#define N 5//這里設置班級人數
void main()
{
int i,sum=0,high=0,score;
float average;
printf("input everyone's score.\n");
for(i=0;i<N;i++)
{
scanf("%d",&score);
sum+=score;
if(score>high) high=score;
}
average=(float)sum/N;
printf("average=%f\n",average);
printf("highest=%d\n",high);
}
這個代碼很容易懂。你拿去改下。。我就不給你調試了。這個是實現某班平均成績然後輸出平均成績最高成績的,如果採納我的。我可以給你編一個很通用的
㈡ C語言學生成績統計
可以給你。需要點時間。現在在上課。
#include <stdio.h>
void main()
{
int Password =0,i=0,sum=0;
clrscr();
printf("\n===請輸入密碼!====\n");
while(Password != 1234)
{
if(i>3)
{
printf(" 密碼錯誤!\n ");
return;
}
i++;
printf(" 請輸入密碼!\n");
}
//以上為三次密碼部分,密碼默認1234。
int k=0,b=0;
int stu[50];
loop:
printf("1. 學生成績錄入(限人數50)\n");
printf("2. 顯示學生成績\n");
printf("3. 統計總分平均分\n");
printf("4. 最高分和最低分\n");
printf("5. 統計各分數段人數\n");
printf("6. 退出\n");
abc:
scanf("%d",&k);
switch(k)
{
case 1:
printf("請輸入50個學生成績:\n");
for(i=0;i<50;i++)
{
scanf("%d",&stu[i]);
b=i;
}
printf("請選擇下一個選項:\n");
goto abc;
case 2:
if(b == 50)
{
printf(" 顯示學生成績:\n");
for(i=0;i<50;i++)
printf(" %d ",stu[i]);
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 3:
if(b == 50)
{
printf(" 顯示學生總分:\n");
for(i=0;i<50;i++)
sum += stu[i];
printf(" %d ",sum);
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 4:
if(b == 50)
{
printf(" 顯示學生最大分,最小分:\n");
min = stu[0];
max = stu[49];
for(i=0;i<50;i++)
if(min > stu[i])
min = stu[i];
for(i=0;i<50;i++)
if(max < stu[i])
max = stu[i];
printf(" %d %d ",max ,min);
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 5:
if(b == 50)
{
printf(" 統計各分數段人數:\n");
// ************************************
// 哥們,這里你自己來寫好嗎?我給點提示,把及格,不及格寫出來。細分分數段,你自己來吧。
int x=0,y=0;
for(i=0;i<50;i++)
if (stu[i]>=60)
x++;
else
y++;
printf(" 及格人數 %d 人,不及格人數 %d 人\n",x,y);
// ***********************************
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 6:
break;
default:
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
//switch語句結束。
getch();
}
親,剛寫好了。我沒調試。這個僅供參考。自己調試,有錯就找找。
是否可以解決您的問題?
㈢ C語言程序設計統計學生成績
用數復組,你學了制數組嗎?
int i,b,c;
scanf("%d"&i); //輸入需要幾個學生成績
int a[i]; //定義數組大小。
for (b=0;b<=i;b++) //循環輸入成績
a[i]=scanf("%d",c);
㈣ 用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);
}
}
㈤ c語言 統計各個分數段的學生人數
intmain(void)
{
inta[6],i,cj,cj2,cj3,cj4,cj5,n;
scanf("%d",&a[0]);
n=0;
while(a[n]!=-1)
{
n++;
scanf("%d",&a[n]);
}
cj=0,cj2=0,cj3=0,cj4=0,cj5=0;
for(i=0;i<6-1;i++)
{
switch(a[i]/10)
{
case10:
case9:cj++;break;
case8:cj2++;break;
case7:cj3++;break;
case6:cj4++;break;
default:cj5++;break;
}
}
printf("<60:%d 60~69:%d 70~79:%d 80~89:%d 90~100:%d ",cj5,cj4,cj3,cj2,cj);
return0;
}
㈥ C語言課設學生成績統計分布
/*內容:數據格式為,學號,姓名,成績。
要求:貫徹結構化的程序設計思想。
用戶界面友好。
用戶界面中的菜單至少包括「讀取數據」,「按學號或姓名查詢成績」,「統計各分數段人數」,「退出」4項。分數段
指不及格,及格,中等,良好,優秀5種成績。
代碼應適當縮進,並給出必要的注釋,以增強程序的可讀性。*/
#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"stdlib.h"
#define N 20
typedef struct
{char name[10];
int num;
int chengji;
}stu;
void menu()
{system("cls");
printf("1.輸入信息\n");
printf("2.顯示\n");
printf("3.統計\n");
printf("4.查找\n");
printf("5.退出");
printf("請選擇:");
}
void input()
{FILE *fp;
stu xs;
if((fp=fopen("student12.dat","ab"))==NULL) {printf("can't open file!\n");exit(0);}
printf("\n錄入格式: 姓名 學號 成績當輸入姓名為ps結束錄入\n");
while(1)
{
scanf("%s",xs.name);
if(strcmp(xs.name,"ps")==0) break;
scanf("%d%d",&xs.num,&xs.chengji);
fwrite(&xs,sizeof(stu),1,fp);
}
fclose(fp);
}
void output()
{FILE *fp;
stu xs;
system("cls");
if((fp=fopen("student12.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
printf("姓名 學號 成績\n");
while(!feof(fp))
{
fread(&xs,sizeof(stu),1,fp);
if(feof(fp)) break;
printf("%-15s%-13.8d%-10d%\n",xs.name,xs.num,xs.chengji);
}
fclose(fp);
getch();
}
//按學號找
void seek1()
{FILE *fp;
stu xs;
int number;
printf("\n請輸入學號:");
scanf("%d",&number);
if((fp=fopen("student12.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
while(!feof(fp))
{fread(&xs,sizeof(stu),1,fp);
if(feof(fp))break;
if(xs.num==number)
{printf("姓名 學號 成績\n");
printf("%-13s %-6.3d %-6d\n",xs.name,xs.num,xs.chengji);
}
}
getch();
}
//按姓名找
void seek2()
{FILE *fp;
char name[10];
stu xs;
printf("\n請輸入姓名:");
scanf("%s",name);
if((fp=fopen("student12.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
while(!feof(fp))
{fread(&xs,sizeof(stu),1,fp);
if(feof(fp))break;
if(strcmp(xs.name,name)==0)
{printf("姓名 學號 成績\n");
printf("%-13s %-6.3d %-6d\n",xs.name,xs.num,xs.chengji);
}
}
fclose(fp);
getch();
}
//查找
void seek()
{ char ch;
(void)getchar();
printf("\n請輸入查找類別:\n1.學號\n2.姓名\n");
ch=getchar();
switch(ch)
{case '1':seek1();break;
case '2':seek2();break;
}
}
//統計
void tongji()
{FILE *fp;
stu xs[N];
int i=0,A=0,B=0,C=0,D=0,E=0;
printf("\n各分數段統計如下:");
if((fp=fopen("student12.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
while(!feof(fp))
{fread(&xs[i],sizeof(stu),1,fp);
if(feof(fp))break;
if(xs[i].chengji<60)A++;
if(xs[i].chengji>=60&&xs[i].chengji<70)B++;
if(xs[i].chengji>=70&&xs[i].chengji<80)C++;
if(xs[i].chengji>=80&&xs[i].chengji<90)D++;
if(xs[i].chengji>=90&&xs[i].chengji<=100)E++;
i++;
}
printf("\n不及格:%d\n及格:%d\n中等:%d\n良好:%d\n優秀:%d\n",A,B,C,D,E);
getch();
}
void main()
{char ch;
while(1)
{menu();
ch=getche();
if(ch=='5')break;
switch(ch)
{case '1':input();break;
case '2':output();break;
case '3':tongji();break;
case'4':seek();break;
}
}
printf("\n歡迎下次使用!\n");
}
㈦ C語言 統計學生成績
#include<stdio.h>
#include<stdlib.h>
struct student
{
double score[5];
}s[10];
void avg()
{
printf("\n");
double sum;
for(int i=0;i<10;i++)
{
sum=0;
printf("第%d位學生的平均分數是: ",i+1);
for(int j=0;j<5;j++)
sum+=s[i].score[j];
printf("%.2lf\n",sum/5);
}
printf("\n");
return ;
}
void tavg()
{
printf("\n");
double sum;
for(int j=0;j<5;j++)
{
sum=0;
for(int i=0;i<10;i++)
sum+=s[i].score[j];
printf("第%d門功課的平均分是: %.2lf\n",j+1,sum/10);
}
return ;
}
void maxsc()
{
printf("\n");
double max=-1;
int i,j;
for( i=0;i<10;i++)
{
for( j=0;j<5;j++)
if(max<s[i].score[j])
{
max=s[i].score[j];
}
}
printf("最高分是:%.2lf分,對應學生與功課如下:\n",max);
for(i=0;i<10;i++)
{
for(int j=0;j<5;j++)
if(max==s[i].score[j])
{
printf("第%d位學生的第%d門成績\n",i+1,j+1);
}
}
printf("\n");
}
int main()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
printf("輸入第%d位學生的第%d門功課的成績: ",i+1,j+1);
scanf("%lf",&s[i].score[j]);
printf("\n");
}
printf("\n");
}
printf("學生平均分數情況:\n");
avg(); //每個學生的平均分
printf("功課平均分數情況:\n");
tavg(); //每門功課的平均分
printf("最高分數即對應學生功課:\n");
maxsc(); //最高分對應的學生和功課
system("PAUSE");
return 0;
}
㈧ c語言學生成績統計系統
#include<stdio.h>
#include<string.h>
#define NUM1 3
#define NUM2 3
#define NUM3 3
struct student
{
char name[10];
int score;
}c1[NUM1],c2[NUM2],c3[NUM3];//定義三個結構體數組
int i,j,k;
FILE *fp1_order,*fp2_order,*fp3_order;/*/定義文件指針
/*/=========================================================
void main(void)
{
void data_in(void);
void score_order(void);
void save_in(void);
void save_order(void);
void open_order(void);
printf("******************************學生成績文件管理******************************\n");
printf(" programmer:喻翔\n\n");
printf("一、輸入三個班的學生姓名和成績:\n\n");
data_in();
printf("\n\n\n");
printf("############################################################################\n\n");
printf("二、保存輸入的姓名和成績:\n\n");
save_in();
printf("\n\n\n\n");
printf("############################################################################\n\n");
printf("三、排名並保存姓名和成績:\n\n");
score_order();
save_order();
printf("\n\n\n\n");
printf("############################################################################\n\n");
printf("四、驗證排名後保存的文件:\n\n");
open_order();
printf("\n\n\n");
}
//=============================================================
void data_in(void)
{
printf("請輸入一班%d個學生的姓名和成績:\n",NUM1);
for(i=0;i<NUM1;i++)
{
printf("第%d個:",i+1);
scanf("%s %d",c1[i].name,&c1[i].score);
}
printf("\n\n\n請輸入二班%d個學生的姓名和成績:\n",NUM2);
for(j=0;j<NUM2;j++)
{
printf("第%d個:",j+1);
scanf("%s %d",c2[j].name,&c2[j].score);
}
printf("\n\n\n請輸入三班%d個學生的姓名和成績:\n",NUM3);
for(k=0;k<NUM3;k++)
{
printf("第%d個:",k+1);
scanf("%s %d",c3[k].name,&c3[k].score);
}
}
//=============================================================
void score_order(void)
{
int h,t;
char s[10];
for(h=0;h<NUM1-1;h++)
for(i=0;i<NUM1-1-h;i++)
if(c1[i].score<c1[i+1].score)
{
t=c1[i].score;
c1[i].score=c1[i+1].score;
c1[i+1].score=t;
strcpy(s,c1[i].name);//一定要使用strcpy()函數
strcpy(c1[i].name,c1[i+1].name);
strcpy(c1[i+1].name,s);
}
for(h=0;h<NUM2-1;h++)
for(j=0;j<NUM2-1-h;j++)
if(c2[j].score<c2[j+1].score)
{
t=c2[j].score;
c2[j].score=c2[j+1].score;
c2[j+1].score=t;
strcpy(s,c2[j].name);
strcpy(c2[j].name,c2[j+1].name);
strcpy(c2[j+1].name,s);
}
for(h=0;h<NUM3-1;h++)
for(k=0;k<NUM3-1-h;k++)
if(c3[k].score<c3[k+1].score)
{
t=c3[k].score;
c3[k].score=c3[k+1].score;
c3[k+1].score=t;
strcpy(s,c3[k].name);
strcpy(c3[k].name,c3[k+1].name);
strcpy(c3[k+1].name,s);
}
}
//=====================================================================
void save_in(void)
{
FILE *fp1_in,*fp2_in,*fp3_in;
if((fp1_in=fopen("data1_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(i=0;i<NUM1;i++)
if(fwrite(&c1[i],sizeof(struct student),1,fp1_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp1_in);
if((fp2_in=fopen("data2_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(j=0;j<NUM2;j++)
if(fwrite(&c2[j],sizeof(struct student),1,fp2_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp2_in);
if((fp3_in=fopen("data3_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(k=0;k<NUM3;k++)
if(fwrite(&c3[k],sizeof(struct student),1,fp3_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp3_in);
}
//==============================================================
void save_order(void)
{
if((fp1_order=fopen("data1_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(i=0;i<NUM1;i++)
if(fwrite(&c1[i],sizeof(struct student),1,fp1_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp1_order);
if((fp2_order=fopen("data2_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(j=0;j<NUM2;j++)
if(fwrite(&c2[j],sizeof(struct student),1,fp2_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp2_order);
if((fp3_order=fopen("data3_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(k=0;k<NUM3;k++)
if(fwrite(&c3[k],sizeof(struct student),1,fp3_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp3_order);
}
//=============================================================
void open_order(void)
{
fp1_order=fopen("data1_order.dat","rb");
printf("一班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(i=0;i<NUM1;i++)
{
printf("第%d名 ",i+1);
fread(&c1[i],sizeof(struct student),1,fp1_order);
printf("%s %d\n",c1[i].name,c1[i].score);
}
fp2_order=fopen("data2_order.dat","rb");
printf("\n\n\n二班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(j=0;j<NUM2;j++)
{
printf("第%d名 ",j+1);
fread(&c2[j],sizeof(struct student),1,fp2_order);
printf("%s %d\n",c2[j].name,c2[j].score);
}
fp3_order=fopen("data3_order.dat","rb");
printf("\n\n\n三班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(k=0;k<NUM3;k++)
{
printf("第%d名 ",k+1);
fread(&c3[k],sizeof(struct student),1,fp3_order);
printf("%s %d\n",c3[k].name,c3[k].score);
}
}
㈨ c語言統計學生成績
#include <stdio.h>
#define N 2
#define M 2
int s[N]={0},a[N][M];
char b[N][10];
void fun1(int a[N][M])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
s[i]+=a[i][j];
printf("第%d個同學的平均分是%.2f\n",i+1,s[i]/5.0);
}
}
void fun2(int a[N][M])
{
float p[M]={0};
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
p[i]+=a[j][i];
p[i]/=10.0;
printf("第%d門課程的平均分是%.2f\n",i+1,p[i]);
}
}
void fun3(char b[N][10])
{
int max,t,i;
max=s[0];
for(i=1;i<N;i++)
if(s[i]>max)
{
max=s[i];
t=i; /*記住最大時i的值,以便找到姓名*/
}
printf("%s榮獲所有學生中最高分%d分\n",b[t],max);
}
main()
{
int i,j;
float p[M]={0};
/* 輸入姓名和成績*/
for(i=0;i<N;i++)
{
printf("輸入第%d個學生的姓名:",i+1);
scanf("%s",&b[i]);
for(j=0;j<M;j++)
{
printf("輸入該學生的第%d門成績:",j+1);
scanf("%d",&a[i][j]);
}
}
printf("\n");
/*計算每個同學平均分*/
fun1(a);
printf("\n");
/*計算每門課的平均分*/
fun2(a);
printf("\n");
/*比較求出最大總分和輸出姓名*/
fun3(b);
return 0;
}
代碼經過測試了 運行成功
如果有什麼不懂的可以問我
㈩ C語言菜鳥問題(統計學生總成績和平均分)
#include<stdio.h>
void
main()
{
int
n,i;
float
score,sum=0.0,aver;//sum
一開始來要源賦值,經常出現這種錯誤
printf("請輸入學生人數:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("請輸入學生成績:");
scanf("%f",&score);
if(score<0||score>100)//邏輯問題,一開始你的把正確的分數都過濾了
continue;
sum=score+sum;
}
printf("學生總成績為:%f\n",sum);
aver=sum/n;
printf("學生平均成績為:%f\n",aver);
}