c語言計算統計學生成績
1. 用c語言編寫一個學生成績統計系統 急!!
思路提示。創建一個頭文件,定義二維數組保存學生成績。聲明求學生總成績以及各科最高最低成績函數。創建源文件,實現上述頭文件聲明的函數。創建main函數調用上述方法即可
2. 用C語言設計一個學生成績統計程序,要求(1)輸入30個學生一門功課的成績。(2)計算班級平均分。
#include"stdio.h"
void main()
{
int n=0;
int num;
int zf=0;
for(n=0;n<30;n++)
{
printf("請輸入第%d個學生的成績:",n+1);
scanf("%d",&num);
zf+=num;
}
printf("該門功課的班版級平均分權為:%d\n",zf/30);
}
3. c語言先輸入一個整數n,再輸入n個學生成績,統計及格學生的人數並輸出
/*
把這個復制,並編譯即可得到你想要的結果,同時你也可以追問。向我索取exe文件。
*/
# include <stdio.h>
# include <malloc.h>
struct Student//創造結構體變數
{
float score;
};
int main (void)
{
int len;
struct Student * pArr;
int i;
int j = 0;
printf("請輸入學生的人數:\n");
printf("人數 = ");
scanf("%d",&len);
pArr = (struct Student *)malloc(len * sizeof(struct Student));
for(i=0;i<len;++i)//輸入
{
printf("請輸入第%d個學生的成績;\n",i+1);
printf("成績:");
scanf("%f", &pArr[i].score);
}
for(i=0; i<len;++i)
{
if(pArr[i].score > 60)
j += 1;
}
printf("及格的人數為:%d人。", j);
return 0;
}
4. 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();
}
親,剛寫好了。我沒調試。這個僅供參考。自己調試,有錯就找找。
是否可以解決您的問題?
5. C語言 計算每門課的平均成績和每個學生的平均成績
#include<stdio.h>
#include<stdlib.h>
#defineN2//輸入學生的個數
structStudent
{
intsno;//學號
charsname[50];//姓名
intcourse1;//課程1
intcourse2;//課程2
intcourse3;//課程3
};
voidmain()
{
structStudentstu[N];
intindex;
intsum=0;
//輸入學生信息
printf("輸入學生情況(輸入的時候按Tab健隔開): ");
printf("學號 姓名 課程1 課程2 課程3 ");
for(index=0;index<N;index++)
{
("%d %s %d %d %d",&stu[index].sno,&stu[index].sname,&stu[index].course1,&stu[index].course2,&stu[index].course3);
}
//列印單科結果
printf("輸出單科結果 ");
for(index=0;index<N;index++)
{
sum+=stu[index].course1;
}
printf("課程1平均分:%d ",sum/N);
sum=0;
for(index=0;index<N;index++)
{
sum+=stu[index].course2;
}
printf("課程2平均分:%d ",sum/N);
sum=0;
for(index=0;index<N;index++)
{
sum+=stu[index].course3;
}
printf("課程3平均分:%d ",sum/N);
//列印學生平均分
printf("輸出學生的結果: ");
for(index=0;index<N;index++)
{
printf("%s的平均分:%d ",stu[index].sname,(stu[index].course1+stu[index].course2+stu[index].course3)/3);
}
}
6. 使用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);
}
這個代碼很容易懂。你拿去改下。。我就不給你調試了。這個是實現某班平均成績然後輸出平均成績最高成績的,如果採納我的。我可以給你編一個很通用的
7. C語言編寫一個成績用來輸入學生學號姓名成績,並統計學生成績的最大值,最小值,平均值,方差,判斷學生
1、更多交流可參考我空間主頁有關文章。
2、#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/*定義結構體*/
struct student
{
int num;
float score;
struct student *next;
};
/*創建一個只有頭結點的空鏈表*/
struct student *create_head()
{
struct student *head;
head=(struct student*)malloc(sizeof (struct student) );
if(head==NULL) //小心別漏這個
{
printf("申請頭結點失敗!\n");
return NULL;
}
head->next=NULL;
return head;
}
/*將s指向的結點插入鏈表,使鏈表保持升序,並返回頭結點*/
struct student *insert(struct student *head,struct student *s)
{
struct student *p=head;
while(p->next!=NULL&&s->score>p->next->score)//特別注意&&左右不能寫反,若s最大,最後p->next=NULL,p->next->score運行出錯
p=p->next;
if(p->next==NULL) //s->score最大的情況 //其實兩種情況可以並在一塊寫
{
p->next=s; //連接結點
s->next=NULL; //p->next就等於NULL
}
else
{
p->next=s; //連接結點
s->next=p->next;
}
return head ;
}
/*查找符合條件的結點,並返回指向該結點的指針*/
struct student *search(struct student *head)
{
struct student *p=head->next;
int num;
printf("請輸入要查找學生的學號:\n");
scanf("%d",&num);
while(p!=NULL&&p->num!=num) //特別注意兩條件不能寫反,若寫反最後p指向NULL時p->num找不到 運行出錯
p=p->next;
if(p==NULL) //特別注意兩個if不能調換,若調換最後p指向NULL時p->num運行出錯
{
printf("找不到符合條件的結點!!!");
return NULL; //查找不到返回空指針
}
if(p->num==num)
{
printf("找到符合條件的結點\n該結點為%d\t%f",p->num,p->score);
return p; //返回查找到的指針
}
}
/*輸出鏈表各結點的值,也稱對鏈表的遍歷*/
void print(struct student *head)
{
struct student *p;
printf(" 鏈表如下: \n");
p=head->next;
while(p!=NULL)
{
printf("%d\t%.1f\n",p->num,p->score);
p=p->next;
}
}
/*釋放鏈表*/
void free_list(struct student *head)
{
struct student *p=head ;
printf("釋放鏈表:\n");
while(p!=NULL)
{
head=head->next;
free(p);
p=head;
}
printf("釋放鏈表成功!\n");
}
/*刪除鏈表中值為num的結點,並返回鏈表的首指針*/
struct student *delete_note(struct student *head,int num_x)
{
struct student *p1=head->next , *p2=head ;
while(p1!=NULL&&p1->num!=num_x) //特別注意&&左右條件不能調換,若調換如果p1指向NULL時p1->num運行出錯
{
p2=p1;
p1=p1->next;
}
if(p1==NULL) //特別注意兩個if不能調換,若調換如果p1指向NULL時,p1->num運行出錯
printf("找不到符合刪除要求的結點!!!\n");
if(p1->num==num_x)
{
p2->next=p1->next;
free(p1);
printf("結點刪除成功!\n");
}
return head;
}
/*完整的有頭結點鏈表操作程序*/
void main()
{
struct student *p , *head ;
char c;
int num ;
float score ;
printf("有頭結點鏈表操作程序:\n");
head=create_head();
while(1)
{
printf("I:插入結點(自動升序) P:輸出鏈表 S:查找結點 D:刪除結點 E:釋放鏈表並退出程序! ");
c=getch();
switch(c)
{
case'I':
printf("請分別輸入要插入學生的學號和分數:\n");
scanf("%d%f",&num,&score);
p=(struct student*)malloc( sizeof(struct student) );
if(p==NULL)
{
printf("申請該結點失敗!!!\n");
exit (0) ;
}
p->num=num; p->score=score; //給p賦值
insert(head,p);
printf("插入成功!\n");
break;
case'P':
print(head);
break;
case'S':
search(head);
break;
case'D':
printf("請輸入要刪除的學生的學號:\n");
scanf("%d",&num);
delete_note(head,num);
break;
case'E':
free_list(head);
exit (0);
}
}
}
8. c語言:輸入10個學生的成績,求學生的平均成績,並統計超過平均分數的學生人數
#include <stdio.h>
#include <malloc.h>
int max,min,k=0; float aver=0;
void f(int *p1,int *p0,int n)
{
i;p1=p0; float s=0;
for(i=0;i<n;i++) s+=*p1++;
aver=s/n;
max=0;min=100;p1=p0;
for(i=0;i<n;i++) {if(*p1>max) max=*p1;p1++;} p1=p0;
for(i=0;i<n;i++) {if(*p1<min) min=*p1;p1++;} p1=p0;
for(i=0;i<n;i++) {if(*p1>aver) k++ ;p1++;} p1=p0;
}
void main()
{
int *p,n,i;
printf("請輸入班級總人數:\n") ;
scanf("%d",&n);
p=(int*)malloc(n*sizeof(int));
if(!p) return;
int *p0;p0=p;
printf("請在此輸入各學生成績:\n");
for(i=0;i<n;i++) scanf("%d",p++);
f(p,p0,n);
printf("平均分數:%3f\n",aver);
printf("最高分:%3d\n",max);
printf("最低分:%3d\n",min);
printf("超過平均分的人數:%3d\n",k);
free(p);
}
9. 用C語言設計一個學生成績統計程序,
要求輸入10個學生5門功課的成績,分別用子函數求出:(1)每個學生的平均分;(2)每門功課的平均分;(3)找出最高分所對應的學生和功課。
#include<stdio.h>
#include<stdlib.h>
structstudent
{
doublescore[5];
}s[10];
voidavg()
{
printf(" ");
doublesum;
for(inti=0;i<10;i++)
{
sum=0;
printf("第%d位學生的平均分數是:",i+1);
for(intj=0;j<5;j++)
sum+=s[i].score[j];
printf("%.2lf ",sum/5);
}
printf(" ");
return;
}
voidtavg()
{
printf(" ");
doublesum;
for(intj=0;j<5;j++)
{
sum=0;
for(inti=0;i<10;i++)
sum+=s[i].score[j];
printf("第%d門功課的平均分是:%.2lf ",j+1,sum/10);
}
return;
}
voidmaxsc()
{
printf(" ");
doublemax=-1;
inti,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分,對應學生與功課如下: ",max);
for(i=0;i<10;i++)
{
for(intj=0;j<5;j++)
if(max==s[i].score[j])
{
printf("第%d位學生的第%d門成績 ",i+1,j+1);
}
}
printf(" ");
}
intmain()
{
inti,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(" ");
}
printf(" ");
}
printf("學生平均分數情況: ");
avg();//每個學生的平均分
printf("功課平均分數情況: ");
tavg();//每門功課的平均分
printf("最高分數即對應學生功課: ");
maxsc();//最高分對應的學生和功課
system("PAUSE");
return0;
}
10. 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;
}
代碼經過測試了 運行成功
如果有什麼不懂的可以問我