輸人10個學生5門課的成績,分別用函數實現下列功能:①計算每個學生的平均分; ②計算每門課的平均分; ③找出所有50個分數中最高的分數所對應的學生和課程; ④計算平均分方差: 其中,x;為某一學生的平均分。


輸人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門課的成績,分別用函數實現下列功能:①計算每個學生的平均分; ②計算每門課的平均分; ③找出所有50個分數中最高的分數所對應的學生和課程; ④計算平均分方差:  其中,x;為某一學生的平均分。

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


免責聲明!

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



猜您在找 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) 學生成績表數據包括:學號,姓名,高數,英語和計算機三門課成績,計算每個學生總分,每課程平均分,最高分和最低分 有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數據和計算出的平均分數存放在磁盤文件 循環錄入某學生 5 門課的成績並計算平均分,如果某分數錄入為負,停止錄入並提示錄入錯誤 有一個班4個學生,5門課程 1求第1門課程的平均分; 2找出有兩門以上課程不及格的學生,輸出他們的學號和全部課程成績及平均成績; 3找出平均成績在90分以上或全部課程成績在85分以上的學生。4分別編3個函數實現以上3個要求。 按平均成績從高到低顯示所有學生的“數據庫”、“企業管理”、“英語”三門的課程成績,按如下形式顯示: 學生ID,,數據庫,企業管理,英語,有效課程數,有效平均分 【C語言】利用文本編輯軟件在磁盤上建立一個有n個學生的學號、姓名及英語、數學和計算機三門課程成績的數據文件。編寫程序將數據文件讀入,且求出每個學生的平均成績。 【JAVA】【作業向】第一題:本學期一班級有n名學生,m門課程。現要求對每門課程的成績進行統計:平均成績、最高成績、最低成績,並統計考試成績的分布律。 查詢score中選學多門課程的同學中分數為非最高分成績的記錄。 【sql: 聯系題26 ,27】查詢平均成績大於等於 85 的所有學生的學號、姓名和平均成績,查詢課程名稱為「數學」,且分數低於 60 的學生姓名和分數
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM