日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

1581: 统计成绩-一题简单的坑题

發布時間:2024/9/3 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1581: 统计成绩-一题简单的坑题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

zcmu:
1581: 統計成績
Time Limit: 1 Sec Memory Limit: 128 MB

[Submit][Status][Web Board]
Description

假設一個班有n(n<=50)個學生,每人考m(m<=5)門課,求每個學生的平均成績和每門課的平均成績,并輸出各科成績均大于等于平均成績的學生數量。

Input

輸入數據有多個測試實例,每個測試實例的第一行包括兩個整數n和m,分別表示學生數和課程數。然后是n行數據,每行包括m個整數(即:考試分數)。

Output

對于每個測試實例,輸出3行數據,第一行包含n個數據,表示n個學生的平均成績,結果保留兩位小數;第二行包含m個數據,表示m門課的平均成績,結果保留兩位小數;第三行是一個整數,表示該班級中各科成績均大于等于平均成績的學生數量。

每個測試實例后面跟一個空行。

Sample Input

2 2
5 10
10 20

Sample Output

7.50 15.00
7.50 15.00
1

HINT

Source

/*
題目是說m<=5,但是存分數的數組定義的比它大一點點(我開始定義的是6)就是AC不了,我定義成50就過了,怎么會這么坑~
*/

#include <stdio.h> typedef struct stu {int score[50];//這里盡量大點!不要大一點點 } STU; void printAver(double aver[],int num) {printf("%.2lf",aver[0]);for(int i = 1; i < num; i++){printf(" %.2lf",aver[i]);}printf("\n"); } int main() {int n,m;STU date[50];double score_aver[50],stu_aver[50];while(~scanf("%d%d",&n,&m)){int num = 0;double sum;for(int i = 0; i < n; i++){sum = 0;for(int j = 0; j < m; j++){scanf("%d",&date[i].score[j]);sum += date[i].score[j];}stu_aver[i] = sum / m;}for(int i = 0; i < m; i++){sum = 0;for(int j = 0; j < n; j++){sum += date[j].score[i];}score_aver[i] = sum / n;}int flag;for(int i = 0; i < n; i++){flag = 1;for(int j = 0; j < m; j++){if(date[i].score[j] < score_aver[j]){flag = 0;break;}}if(flag) num++;}printAver(stu_aver,n);printAver(score_aver,m);printf("%d\n\n",num);}return 0; }

//不用結構體

#include <stdio.h> void printAver(double aver[],int num) {printf("%.2lf",aver[0]);for(int i = 1; i < num; i++){printf(" %.2lf",aver[i]);}printf("\n"); } int main() {int n,m;int date[50][50];double score_aver[50],stu_aver[50];while(~scanf("%d%d",&n,&m)){int num = 0;double sum;for(int i = 0; i < n; i++){sum = 0;for(int j = 0; j < m; j++){scanf("%d",&date[i][j]);sum += date[i][j];}stu_aver[i] = sum / m;}for(int i = 0; i < m; i++){sum = 0;for(int j = 0; j < n; j++){sum += date[j][i];}score_aver[i] = sum / n;}int flag;for(int i = 0; i < n; i++){flag = 1;for(int j = 0; j < m; j++){if(date[i][j] < score_aver[j]){flag = 0;break;}}if(flag) num++;}printAver(stu_aver,n);printAver(score_aver,m);printf("%d\n\n",num);}return 0; }

總結

以上是生活随笔為你收集整理的1581: 统计成绩-一题简单的坑题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。