上机实验平时作业3.docx
- 文档编号:7749303
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:10
- 大小:216.87KB
上机实验平时作业3.docx
《上机实验平时作业3.docx》由会员分享,可在线阅读,更多相关《上机实验平时作业3.docx(10页珍藏版)》请在冰豆网上搜索。
上机实验平时作业3
平时作业3---“循环结构”练习
题目1:
求N的阶乘。
分别利用“while,do—while或for循环”,实现求n的阶乘(n!
=1*2*3*…*n)的功能,要求分别输出1!
、2!
...n!
的值。
其中n从键盘输入(n<12)。
题目1-1:
计算(1!
+2!
.....+n!
)和值(sum)。
其中n从键盘上输入(n<12)。
源程序:
for语句
#include
usingnamespacestd;
intmain()
{
inti,n,sum=0,t=1;
cout<<"input:
";
cin>>n;
if(n<12)
{
for(i=1;i<=n;i++)//控制数字个数
{
t=t*i;
cout<
="< }//分别输出1! 、2! ...n! 的值 for(i=1,t=1;i<=n;i++)//控制每个数的阶乘 {t*=i; sum+=t; }cout<<"和值"< } elsecout<<"noanswer"; return0; } Do-while语句 intmain() { inti=1,n,sum=0,t=1; cout<<"input: "; cin>>n; if(n<12) { do//控制数字个数 { t=t*i;//控制每个数的阶乘 sum+=t;//计算和值 cout< ="< 、2! ...n! 的值 i++; } while(i<=n); cout<<"和值"< } else cout<<"noanswer"< return0; } 运行结果 题目2: 编程实现如下功能: 在循环控制下从键盘分别输入10个整数(注: 每次输入一个整数,循环10次),分别计算其奇数和偶数的平均值。 #include #include usingnamespacestd; intmain() { inta[11],sum=0,count_=0,k=0,t=0;//数组结构来完成10个整数的输入 floatave1,ave2; for(inti=0;i<10;i++) { cin>>a[i]; if(a[i]%2==0)//输入1个整数,判断该数是奇数还是偶数 { sum+=a[i]; k++;//计算偶数个数 } else { count_+=a[i]; t++;//计算奇数个数 } } ave1=(float)sum/k; ave2=(float)count_/t; cout<<"奇数平均值"< return0; } 题目3: 编程计算一组学生的平均成绩和最高成绩,当成绩值为负数则结束。 源程序: #include usingnamespacestd; intmain() { inttemp,max=0,i=0,n; floatsum=0.0,ave; cout<<"请输入你要计算几个学生的成绩: "; cin>>n; for(i=1;i<=n;i++) { cout<<"请输入第"< "; cin>>temp; if(temp<0) cout<<"wrong"; else { sum+=temp; if(temp>max) { max=temp; } ave=sum/i; } } cout<<"max="< return0; } 运行结果: 题目4: 分别采用“顺序结构(方程式求解后用赋值语句求解)”和“穷举法”编写C++程序,求解鸡兔同笼问题。 已知鸡兔总头数为H,总脚数为F,求鸡、兔各多少只? (命题中,鸡: 一头二脚,兔: 一头四脚)。 穷举法 #include #include usingnamespacestd; intmain() { intH,F,i,j;//i是兔子,j是鸡。 已知鸡兔总头数为H,总脚数为F,求鸡、兔各多少只? (命题中,鸡: 一头二脚,兔: 一头四脚)。 intflag=0; cout<<"鸡兔总头数: "< cout<<"鸡兔总脚数: "< cin>>H>>F; for(i=0;i for(j=0;j { if(i*4+j*2==F&&i+j==H) { cout<<"兔有: "< cout<<"鸡有: "< flag++; break; } } if(flag==0) { cout<<"此题无解"< } return0; } 函数表达式法 #include usingnamespacestd; voidmain() { intH,F,i,j; cout<<"请输入鸡兔的总数: "; cin>>H; cout<<"请输入鸡兔脚的总数: "; cin>>F; i=(4*H-F)/2; j=H-F; if(i*2+j*4==F&&i>=0&&j>=0) cout<<"鸡有i只"<<"兔有j只"< else cout<<"无解"< } 题目5: 编写C++程序,找出1至10000之间的全部同构数的。 例如: 5是25(即5*5)右边的数,25是625(即25*25)右边的数,5和25都是同构数。 源程序: #include usingnamespacestd; intTongGou(intn,intk) { if((n*(n-1))%k==0)//如果是同构数满足A*A-A=N*(10*10……)这里N是任意一个数,化简得到: A*(A-1)%(10*10*……)=0 return1; else return0; } intmain() { intn,k=10; cout<<"input: "; cin>>n; while(k<=n) k*=10;//改变K取值 if(TongGou(n,k)==1) cout< else cout< return0; } 运行结果: 题目6: 已知平方根迭代公式: xn=(x0+a/x0)/2,设初值x=a/2。 编写程序输入a值计算其平方根。 并调用标准函数SQRT验证自编函数的运行结果。 迭代的结束条件是|xn-x0|<10-5。 源程序: #include #include #include usingnamespacestd; floatmysqrt(floata) { floatx0,x1; x1=a/2; do{ x0=x1; x1=0.5*(x0+a/x0); } while(fabs(x1-x0)>1e-5); return(x1); } floatmain() { floata; cout<<"input="; cin>>a; cout<<"myresultis"< cout<<"standardresultis"< return0; } 运行结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 实验 平时 作业