用c語言編寫求學生的平均成績
『壹』 C語言編寫函數,求10個學生的平均成績,使用數組
1、首先打開visual studio 2019軟體,新建一個win32控制台程序。
『貳』 c語言編程實例:輸入多個學生的成績,求學生的平均成績,並統計出超過平均分數的
沒有懸賞么?
呵呵
最簡單的易懂的方法是:在循環語句中用數組接收輸入的成績,接受的同時定義一個sum變數,讓它自動加數組成績,和定義一個i變數,用i++統計輸入成績的個數,然後sum/i的平均成績,再用while循環數組,如何大於sum/i,輸出~
『叄』 用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;
}
程序的運行結果:
(3)用c語言編寫求學生的平均成績擴展閱讀:
具有相同數據類型的數據我們可以用數組來存放,但對於上面的學生信息,包含多種數據類型,所以只能使用結構體來存放。
結構體的定義形式為:
struct 結構體名{
結構體所包含的變數或數組
};
結構體是一種集合,它裡麵包含了多個變數或數組,它們的類型可以相同,也可以不同,每個這樣的變數或數組都稱為結構體的成員(Member)。
結構體成員的定義方式與變數和數組的定義方式相同,只是不能初始化。注意大括弧後面的分號;不能少,這是一條完整的語句。結構體也是一種數據類型,它由程序員自己定義,可以包含多個其他類型的數據。
像 int、float、char 等是由C語言本身提供的數據類型,不能再進行分拆,我們稱之為基本數據類型;而結構體可以包含多個基本類型的數據,也可以包含其他的結構體,我們將它稱為復雜數據類型或構造數據類型。
『肆』 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(" ");
}
}
(4)用c語言編寫求學生的平均成績擴展閱讀:
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;
}
『伍』 用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語言編寫求平均成績(多門課多個學生)
這是我共享的一個程序和代碼,你下載下來改一下就可以了,
『柒』 C語言:編寫一個程序,從鍵盤輸入10個學生成績,求平均成績。
/*
C語言:編寫一個程序,從鍵盤輸入10個學生成績,求回平均答成績
*/
#include<stdio.h>
#defineN10
intmain()
{
floatarr[N]={0.0},s=0.0;
inti;
for(i=0;i!=N;++i){//輸入
scanf("%f",&arr[i]);
s+=arr[i];
}
printf("%0.2f ",s/N);//輸出平均數
return0;
}
『捌』 用c語言編寫程序:計算班級每位學生的平均成績。
第一題:
#include "stdio.h"
float *Grade(float *num,int i) //用來冒泡排序 num傳入數組指針,i傳入數組個數
{
int j,k;
float temp;
for (j=0;j<i;j++)
for (k=0;k<i-j;k++)
{
if (num[k]<num[k+1])
{
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
}
}
return num;
}
void main()
{
float num[100];
int i=0,j=0,iavg=0; //i=數組個數,j=循環,iavg=高於平均成績人數
float avg=0,sum=0; //avg=平均成績,sum=總成績
printf("請輸入成績,按Ctrl+D結束:");
while (scanf("%f",&num[i])) //循環輸入成績
{
sum+=num[i];
i++;
}
avg=sum/i;
printf("平均分為%.1f\n",avg);
Grade(num,i);
printf("所有學生的成績為:");
for (j=0;j<i;j++)
{
printf("%.1f ",num[j]);
if (num[j]>avg)
iavg++;
}
printf("\n高於平均人數的有%d人\n",iavg);
}
第二題:
#include "stdio.h"
int digit(int i,int *dinum)
{
int j=0,k=0;
while (i=0) //計算位數
{
dinum[k]=i%10; //將數字存入數組
i=i/10;
j++;k++;
}
return j;
}
void main()
{
int inum,dinum[10],i,j; //inum=整數 dinum=存各個數字的數組 i,j=循環需要
printf("請輸入整數:");
scanf("%d",&inum);
j=digit(inum,dinum);
printf("該整數為 %d 位\n",j);
printf("數字分別為:");
for (i=j-1;i>=0;i--)
{
printf("%d ",dinum[i]);
}
}
第三題:
#include "stdio.h"
int fun(int *a)
{
int i=1,j=0;
for (i;i<1000;i++)
{
if ((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))
{
a[j]=i;
j++;
}
}
return j;
}
void main()
{
int a[500],i,j;
j=fun(a);
for (i=0;i<j;i++)
{
printf("%d ",a[i]);
if (i%15==0)
printf("\n");
}
以上代碼均在VC6.0中編譯通過,現在1點了。後面的題以後再說
『玖』 用c語言編寫求平均成績
#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct record
{
char xuehao[10];//學號
char name[20]; //姓名
char sex[3];//性別
int ke1;//數學
int ke2 ;//語文
int ke3;//英語
int pin;
}stu[50];
int k=1,n,m;void readfile();
void seek();
void insert();
void del();
void save();
void menu();
void seek()
{int i,j,item,flag;<br>char s1[20];<br>printf("------------------\n");<br>printf("1.按學號查詢\n");<br>printf("2.退出本菜單\n");<br>printf("------------------\n");<br>while(1)<br>{ printf("請選擇子菜單編號:");<br>scanf("%d",&item);<br>flag=0;<br>switch(item)<br>{<br>case 1:<br>printf("請輸入要查詢的學生的學號:\n");<br>scanf("%s",s1);<br>for(i=0;i<n;i++)<br>if(strcmp(stu[i].xuehao,s1)==0)<br>{ flag=1;<br>printf("該學生學號,姓名,性別,數學,語文,英語 分別為:\n");<br>printf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,<br>stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);<br>}
if(flag==0)
printf("該學號不存在!\n"); break;
case 2:return;
default:printf("請在1-2之間選擇\n");
}
}
}
void insert()
{ int i=n,j,flag;
printf("請輸入待增加的學生數:\n");
scanf("%d",&m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("請輸入第 %d 個學生的學號:\n",i+1);
scanf("%s",stu[i].xuehao);
for(j=0;j<i;j++)
if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)
{ printf("已有該學號,請檢查後重新錄入!\n");
flag=1;
break;
}
}
printf("請輸入第 %d 個學生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("\n請輸入第 %d 個學生的性別:",i+1);
scanf("%s",stu[i].sex);
printf("\n請輸入第 %d 個學生的數學成績:",i+1);
scanf("%d",&stu[i].ke1);
printf("\n請輸入第 %d 個學生的語文成績:",i+1);
scanf("%d",&stu[i].ke2);
printf("\n請輸入第 %d 個學生的英語成績:",i+1);
scanf("%d",&stu[i].ke3);if(flag==0)
{ i=i;
i++;
}
}while(i<n+m);
n+=m;
printf("錄入完畢!\n\n");
}void del()
{ int i,j,flag=0;
char s1[20];
printf("請輸入要刪除學生的學號:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].xuehao,s1)==0)
{ flag=1;
for(j=i;j<n-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("該學號不存在!\n");
if(flag==1)
{ printf("刪除成功,顯示結果請選擇菜單6\n");
n--;
}
}
void readfile()
{
char buf[80],*p="student.dat";
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s%s%s%d%d%d",stu[i].xuehao,stu[i].name,
stu[i].sex,&stu[i].ke1,&stu[i].ke2,&stu[i].ke3)==6)
{ i++;
i=i;
}
fclose(fp);
n=i;
printf("錄入完畢!\n");
}void save()
{ int i,j,k,flag=0;
FILE *fp;
fp=fopen("student.dat","w");
for(i=0;i<m;i++)
{
fprintf(fp,"%s%s%d%d%d",stu[i].xuehao,stu[i].name,stu[i].sex,&stu[i].ke1,
&stu[i].ke2,&stu[i].ke3);
fclose(fp);
printf("已儲存");
}
}
void paixu()
{
int i,j,k,t;
for(i=0;i<m;i++)
{
stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;
}
for(i=0;i<=m-2;i++)
{
k=i;
for(j=i+1;j<=m-1;j++)
if(stu[j].pin<stu[k].pin)
k=j;
if(k!=i)
{
t=stu[k].pin;
stu[k].pin=stu[i].pin;
stu[i].pin=t;
}
}
for(i=0;i<m;i++)
{printf("第 %d 個學生的姓名%s:",i+1,stu[i].name);<br> printf("\n第 %d 個學生的性別:%s",i+1,stu[i].sex);<br> printf("\n第 %d 個學生的數學成績:%d",i+1,stu[i].ke1);<br> printf("\n第 %d 個學生的語文成績:%d",i+1,stu[i].ke2);<br> printf("\n第 %d 個學生的英語成績:%d",i+1,stu[i].ke3);<br> printf("\n第 %d 個學生的平均成績:%d",i+1,stu[i].pin);<br> }
}
void menu()
{ int nub;
printf(" \n\n學生成績管理系統\n\n");
printf("*****系統功能菜單*****\n");
printf("----------------------\n");
printf("1.輸入學生信息\n");
printf("2.查詢學生信息\n");
printf("3.按學號刪除信息\n");
printf("4.讀入學生信息\n");
printf("5.保存信息(要把修改保存到文件,退出程序前必須執行本項)\n");
printf("6.查詢學生平均成績信息\n");
printf("0.退出系統\n");
printf("----------------------\n");
printf("請選擇菜單編號:");
scanf("%d",&nub);
switch(nub)
{
case 1:insert();break;
case 2:seek();break;
case 3:del();break;
case 4:readfile();break;
case 5:save();break;
case 6:paixu();break;
case 0:k=0;break;
default:printf("請在0-6之間選擇\n");
}}
void main()
{
while(k)
menu();
}
//平均數是排序後,輸出的,如果你不想直接輸入,那就不要對每個學生進行選擇排序了