第一节 for循环
2016:【例4.1】for循环求和
【题目描述】
利用for循环。计算输出1+2+3+...+n的和。
【输入】
输入n。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
55
【提示】
【数据规模及约定】
对于100%的数据,1≤n≤100。
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int s=0;
for(int i=1;i<=n;i++)
{
s=s+i;
}
cout<<s;
return 0;
}
2017:【例4.2】输出偶数
【题目描述】
按照由小到大的顺序,输出1∼n之间的所有偶数。
【输入】
输入n。
【输出】
输出为一行,各个偶数之间用一个空格隔开。
【输入样例】
10
【输出样例】
2 4 6 8 10
【提示】
【数据规模及约定】
对于所有数据,1≤n≤100。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
if(i%2==0) cout<<i<<" ";
}
return 0;
}
2018:【例4.3】输出奇偶数之和
【题目描述】
利用for循环,分别输出1∼n之间的所有奇数的和、偶数的和。
【输入】
输入n。
【输出】
输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。
【输入样例】
10
【输出样例】
30 25
【提示】
【数据规模及约定】
对于所有数据,1≤n≤100。
#include <iostream>
using namespace std;
int main()
{
int n;
int sum1=0,sum2=0;
cin>>n;
for(int i=0;i<=n;i++)
{
if(i%2==0) sum1=sum1+i;
else sum2=sum2+i;
}
cout<<sum1<<" "<<sum2;
return 0;
}
2019:【例4.4】求阶乘
【题目描述】
利用for循环求n!
的值。
提示,n!=1×2×...×n
。
【输入】
输入一个正整数n
。
【输出】
输出n!
的值。
【输入样例】
4
【输出样例】
24
【提示】
【数据规模及约定】
对于所有数据,1≤n≤20。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
long long s=1;
for(int i=1;i<=n;i++)
{
s=s*i;
}
cout<<s;
return 0;
}
1059:求平均年龄
【题目描述】
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
【输入】
第一行有一个整数n
(1≤n≤100
),表示学生的人数。其后n
行每行有1
个整数,表示每个学生的年龄,取值为15
到25
。
【输出】
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
【输入样例】
2
18
17
【输出样例】
17.50
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,i,a;
float sum=0;
float av;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%d",&a);
sum=sum+a;
}
printf("%.2f",sum/n);
return 0;
}
1060:均值
【题目描述】
给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。
【输入】
输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。
【输出】
输出一行,包含一个浮点数,表示均值,精确到小数点后4位。
【输入样例】
2
1.0 3.0
【输出样例】
2.0000
#include<iostream>
using namespace std;
int main(){
int N;
double sum,n;
cin>>N;
for(int i=1;i<=N;i++){
cin>>n;
sum=sum+n;
}
sum=sum/N;
printf("%.4f",sum);
return 0;
}
1061:求整数的和与均值
【题目描述】
读入n(1≤n≤10000)个整数,求它们的和与均值。
【输入】
输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。
【输出】
输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
【输入样例】
4
344
222
343
222
【输出样例】
1131 282.75000
#include<cstdio>
using namespace std;
int n,m,i,t;
double s=0;
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&m);
s=s+m;
}
t=s;
printf("%d",t);
printf(" %.5lf",s/n);
return 0;
}
1062:最高的分数
【题目描述】
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
【输入】
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
【输出】
输出一个整数,即最高的成绩。
【输入样例】
5
85 78 90 99 60
【输出样例】
99
#include<iostream>
using namespace std;
int main()
{
int a,b,max=0;
cin>>a;
for(int i=1;i<=a;i++)
{
cin>>b;
if(b>max) max=b;
}
cout<<max;
return 0;
}
1063:最大跨度值
【题目描述】
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。
【输入】
一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。
【输出】
输出一行,表示序列的最大跨度值。
【输入样例】
6
3 0 8 7 5 9
【输出样例】
9
#include<iostream>
using namespace std;
int main()
{
int a,b,max=0,min=10000;
cin>>a;
for(int i=1;i<=a;i++)
{
cin>>b;
if(b>max) max=b;
if(b<min) min=b;
}
cout<<max-min;
return 0;
}