循环嵌套

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cout<<endl; }
循环嵌套
完整程序如下: #include <iostream> using namespace std; int main () {
int i,j,n; cin>>n; for (i=1; i<=n; ++i){
for (j=1; j<=i; ++j) cout<<"*";
int s=1,n; cin>>n; for(int i=1;i<=n;++i)
s*=i; cout<<s<<endl; return 0; }
【说明】: 当n>=13时,s值超过了int类型的表示范围。还有一种比int更大的类型,称为long long,它的表示范围是-263~
263-1,比-1019~1019略窄,而我们一直使用的int范围是-231~231-1,只比-2*109~2*109略宽。(P25)
#include<cstdio> #include<iostream> using namespace std;
int main(){ int n; double sum; cin>>n; for(int i=0;i<n;i++) {
int num; scanf("%d",&num); sum=sum+num; } printf("%.2lf\n",sum/n); return 0; }
练习
例4.13 对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的直角三角形。
例如:当n=5时,输出:
* ** *** **** *****
第1行,输出1个* 第2行,输出2个* . . 第i行,输出i个*
for (i=1; i<=n; ++i){
for (j=1; j<=i; ++j) cout<<"*";
循环嵌套
回顾:
例4.2 输出1—100之间所有偶数。
【方法1】可以想到对于1-100之间的100个数字i,直接重复进行判断,如果i是偶数,则输出i的值。
【方法2】我们都知道,相邻偶数之间的差值为2,所以,我们还可以设置变量的初值为2,增量为2的for循环, 使得循环次数减少为50次。
#include<iostream> using namespace std; int main(){
++n; s+=n; } cout<<n; return 0; }
说明:语句1是while循环语句的循环体,它将在满足条件的 情况下被重复执行。
for循环与while循环的区别
从应用场景角度考虑:
如果一个需求明确循环的次数,那么一般使用for循环(计数循环)
如果一个需求不知道循环了多少次,一般使用while循环(条件循环)
long long s=1; int n; scanf("%d",&n); for (int i=1; i<=n ; ++i)
s*=i; printf(“%lld\n”,s); //低版本也可用printf("%I64d\n",s) return 0; }
【说明】: 当n>=13时,s值超过了int类型的表示范围。还有一种比int更大的类型,称为long long,它的表示范围是-263~
263-1,比-1019~1019略窄,而我们一直使用的int范围是-231~231-1,只比-2*109~2*109略宽。(P25)
循环嵌套
以上程序是一个for循环的嵌套。这种方法是比较容易想到的。 但实际上对于求i!,我们可以根据求出的(i-1)!乘上i即可得到,而无 需重新从1再累乘到i。
#include <iostream>
练习
例4.13 对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的直角三角形。
例如:当n=5时,输出:
* ** *** **** *****
第1行,输出1个* 第2行,输出2个* . . 第i行,输出i个*
for (i=1; i<=n; ++i){
for (j=1; j<=i; ++j) cout<<"*";
for(i=n-1;i>=1;i--){ for(j=1;j<=n-i;++j) cout<<" "; for(j=1;j<=2*i-1;++j) cout<<"*"; cout<<endl;
}
cout<<endl; } return 0; }
断点调试查看变量变化
回顾:
例4.5 求s=1+2+3……+n,当加到第几项时,s的值会超过1000?
#include <iostream> using namespace std; int main () {
int n=0,s=0; while (s<=1000) {
循环嵌套
例4.12 求 S=1!+2!+3!+....+10!
分析:这个问题是求10以内自然数的阶乘之和,可以用for循环来实现。
程序结构如下: for(i=1;i<=10;++i) { (1)i阶乘的值存到t; (2)累加t到s中; }
//t=i! //s+=t
#include <iostream> using namespace std; int main (){
#include<iostream> using namespace std; int main(){
int s=0,n; cin>>n; for(int i=1;i<=n;++i)
s=s+i; cout<<s<<endl; return 0; }
练习
例4.4 利用for循环计算n!的值。
#include<iostream> using namespace std; int main(){
cout<<endl; }
循环嵌套
完整程序如下: #include <iostream> using namespace std; int main () {
int i,j,n; cin>>n; for (i=1; i<=n; ++i){
for (j=1; j<=i; ++j) cout<<"*";
cout<<endl; } return 0; }
断点调试查看变量变化
循环嵌套
改: 对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的等边三角形。
例如:当n=4时,输出:
* *** ***** *******
#include<iostream> using namespace std; int main(){
int t,s; s=0; for(int i=1;i<=10;++i){
t=1;
求i的阶乘已经实现: t=1;
for (j=1;j<=i;++j) t*=j;
for (int j=1;j<=i;++j) t=t*j;
s=s+t; } cout<<s; return 0; }
//求i! //累加i!
例4.5
求s=1+2+3……+n,当加到第几项时,s的值会超过1000?
#include<iostream> using namespace std; int main(){
int i,sum=0; for(i=1;;i++){
sum+=i; if(sum>1000) {
cout<<i<<endl; break; } } return 0;}
int i; for(i=1;i<=100;i++){
if(i%2==0) cout<<i<<" "; } return 0; }
#include<iostream> using namespace std; int main(){
int i; for(i=2;i<=100;i+=2){
cout<<i<<" "; } return 0; }
int i,j,n; cin>>n;
for(i=1;i<=n;++i){ for(j=1;j<=n-i;++j) cout<<" "; for(j=1;j<=2*i-1;++j) cout<<"*"; cout<<endl;
}
return 0; }
* *** ***** ******* ***** *** *
using namespace std;
int main ()
{
int t=1,s=0;
for(int i=1;i<=10;++i) {
t*=i;
//t为上一个数的i-1的阶乘值,再乘以i即为i!
s+=t;
//累加i!
}
cout<<s;
wenku.baidu.com
return 0;
}
求平均年龄【1.5编程基础之循环控制01】 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平 均年龄,保留到小数点后两位。 输入: 第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有 1个整数,表示每个学生的年龄,取值为15到25。 输出: 输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两 位。 样例输入: 2 18 17 样例输出: 17.50
练习
例4.4 利用for循环计算n!的值。
#include<iostream> using namespace std; int main(){
int s=1,n; cin>>n; for(int i=1;i<=n;++i)
s*=i; cout<<s<<endl; return 0; }
#include <cstdio> using namespace std; int main () {
for语句
一、语句格式
格式1
说明:语句1是for循环语句的循环体,它将在满足条件的情况下被重复执行。 格式2 说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式程序风格 提示:写for循环语句时,循环体的语句相对于for缩进两格。
练习
例4.4 利用for循环计算1+2+3……+100的值。
相关文档
最新文档