【題目描述】
班上有學生若干名,給出每名學生的年齡(整數),求班上所有學生的平均年齡,保留到小數點后兩位。
【輸入】
第一行有一個整數n(1<= n <= 100),表示學生的人數。其后n行每行有1個整數,表示每個學生的年齡,取值為15到25。
【輸出】
輸出一行,該行包含一個浮點數,為要求的平均年齡,保留到小數點后兩位。
【輸入樣例】
2
18
17
【輸出樣例】
17.50
題目分析:
本題運用循環就和,做題之前先搞清楚解題思路,題目要求有n名同學,每一名同學的年齡都需要輸入,很明顯要輸入n次,這里我們就有了重復n次的for循環
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
}
return 0;
}
然后思考在循環里要做什么事,需要輸入每名同學的年齡,我們來進一步完善代碼
#include<iostream>
using namespace std;
int main(){
int n,a;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
}
return 0;
}
到了這里有的同學就會有疑問,這樣輸入同學的成績,會把結果都輸入到變量a里面去,變量又只會存儲最后一個成績,這樣是沒意義的。這里先不要急,題目還有什么要求,
我們要求平均值,我們知道平均值 = 總數除以個數,這里我么的問題就轉變了,從求平均值變成求總和,怎么求呢,這里我們每循環一次都會輸入一次學生的年齡,那么我
們在加一句話sum = sum + a;讓每次輸入的年齡a都存儲到sum這個求和變量中,並且每次都會給變量a一個全新的年齡,那么sum每次加的值都是不一樣的,最終循環結束
時,sum里面存放的就是n名學生的年齡總和,最后輸出的時候用sum除以n即可
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n,a;
double sum=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
sum=sum+a;
}
printf("%.2lf",sum/n);
return 0;
}