輸人10個學生5門課的成績,分別用函數實現下列功能:


輸人10個學生5門課的成績,分別用函數實現下列功能:

①計算每個學生的平均分;
②計算每門課的平均分;
③找出所有50個分數中最高的分數所對應的學生和課程;
④計算平均分方差:

其中,x;為某一學生的平均分。

題目解析:

此題的關鍵是如何存儲某個學生對應某門課程的分數,這里利用了一個二維數組score,其中score[i] [j]就代表了第i個學生的第j門課程的分數,只要能夠理解這個存儲方式,其余的計算就是比較容易理解和實現的。

代碼示例:

#include<stdio.h>

#define N 10
#define M 5
float score[N][M];
float a_stu[N], a_cour[M];
int r, c;

//輸入學生成績信息函數
void input_stu(void)
{
	int i, j;
	for (i = 0; i < N; i++)
	{
		printf("\ninput score of student%2d:\n", i + 1);
		for (j = 0; j < M; j++)
			scanf("%f", &score[i][j]);
	}
}

//每個學生平均分
void aver_stu(void)
{
	int i, j;
	float s;
	for (i = 0; i < N; i++)
	{
		for (j = 0, s = 0; j < M; j++)
			s += score[i][j];
		a_stu[i] = s / 5.0;
	}
}

//每門課程平均分
void aver_cour(void)
{
	int i, j;
	float s;
	for (j = 0; j < M; j++)
	{
		s = 0;
		for (i = 0; i < N; i++)
			s += score[i][j];
		a_cour[j] = s / (float)N;
	}
}

//最高分函數
float highest()
{
	float high;
	int i, j;
	high = score[0][0];
	for (i = 0; i < N; i++)
	for (j = 0; j<M; j++)
	if (score[i][j]>high)
	{
		high = score[i][j];
		r = i + 1;
		c = j + 1;
	}
	return(high);
}

//方差函數
float s_var(void)
{
	int i;
	float sumx, sumxn;
	sumx = 0.0;
	sumxn = 0.0;
	for (i = 0; i < N; i++)
	{
		sumx += a_stu[i] * a_stu[i];
		sumxn += a_stu[i];
	}
	return(sumx / N - (sumxn / N)*(sumxn / N));
}

int main()
{
	int i, j;
	float h;
	input_stu();
	aver_stu();
	aver_cour();
	printf("\n  NO.     cour1   cour2   cour3   cour4   cour5   aver\n");
	for (i = 0; i < N; i++)
	{
		printf("\n NO %2d ", i + 1);
		for (j = 0; j < M; j++)
			printf("%8.2f", score[i][j]);
		printf("%8.2f\n", a_stu[i]);
	}
	printf("\naverage:");
	for (j = 0; j < M; j++)
		printf("%8.2f", a_cour[j]);
	printf("\n");
	h = highest();
	printf("highest:%7.2f   NO. %2d   course %2d\n", h, r, c);
	printf("variance %8.2f\n", s_var());
	return 0;
}

運行結果:

輸人10個學生5門課的成績,分別用函數實現下列功能:
輸人10個學生5門課的成績,分別用函數實現下列功能:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) 有一個班4個學生,5門課程 ①求第1門課程的平均分;②找出有兩門以上課程不及格的學生,輸出他們的學號和全部課程成績及平均成績; ③找出平均成績在90分以上或全部課程成績在85分以上的學生 分別編3個函數實現以上3個要求 2017.4.20實驗三:2、定義一個包含學生學號、姓名、年齡和三門課成績的結構體,輸入10個學生信息,並按總成績由高到低的順序排序並輸出。 某班有5個學生, 每名學生的數據包括學號,姓名,3門課成績,從鍵盤上輸入5名學生數據,要求打印出3門課的總平均成績以及最高分的學生數據(包括學號,姓名,3門課成績) JAVA編程:有五個學生,每個學生有3門課(語文、數學、英語)的成績, 分別用html/css、javascript、jQuery實現下拉菜單的顯示和隱藏 C語言之:結構體動態分配內存(利用結構體數組保存不超過10個學生的信息,每個學生的信息包括:學號、姓名和三門課(高數、物理和英語 )的成績和平均分(整型)。) 20200803給出一 名學生的語文和數學成績,判斷他是否恰好有一門課不及格(<60分),如果是輸出1;否則輸出0(奧賽一本通 p32 10) java例題_50 題目:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 查詢每門課程成績都大於80分學生的學號
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM