华中科技大学c++第3次上机作业

更新时间:2023-10-29 15:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华中科技大学

《计算机基础与程序设计(C++)》

实验报告

实验名称:第三次上机实验实验学时:4 姓名:学号:班级:电气

实验日期:2017/3/27 教师批阅签字: 一、实验目的

?

? ? ?

掌握三种循环语句的使用。 学会使用continue 和break。 掌握多重循环的设计。 掌握常用算法的应用。

二、 实验内容

1.在vc环境下编写下述程序代码,编译调试然后用不同的数据测试直至得到完全正确的结果。并解释出错原因。

#include #include using namespace std; int main( ) {

float x0,x1,a;

cout<<\输入一个正数:\ cin>>a; if(a<0)

cout<

x1=(x0+a/x0)/2;

while (abs(x1-x0)>=1e-5) { x0=x1; x1=(x0+a/x0)/2; }

cout<< a<<\的平方根为:\ }

return 0; 语法错误:

1.最后缺少花括号。 逻辑错误:

1.else后面有分号,导致花括号中的语句不受else限制。 2.abs所提供的精度为整数 更改后的程序:

#include #include using namespace std; int main( ) {

float x0,x1,a;

cout<<\输入一个正数:\ cin>>a; if(a<0)

cout<

while (fabs(x1-x0)>=1e-5) { x0=x1; x1=(x0+a/x0)/2; }

cout<< a<<\的平方根为:\ }

return 0; }

2.下列程序的功能是:计算一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设兔子不存在死亡问题,请问从第1个月到第20个月,每个月有多少对兔子?要求输出时按行列方式每行显示5个数据。如下图:

编译调试该程序看是否正确,不正确的话修改之直至完全满足要求。并解释出错原因。 int main() {

int fib0=0,fib1=1,fib2; int n;

}

cout<

{ fib2=fib0+fib1; cout<

if(n%5==0) cout<

return 0;

语法错误:

1.缺少头文件(iostream以及iomanip)以及命名空间。 2.return0后的分号为中文分号。 逻辑错误:

1. cout<

改正后的程序:

#include #include using namespace std; int main() { int fib0=0,fib1=1,fib2; int n; cout<

if((n+1)%5==0) cout<

3. 编程任意输入一个三位数,判断其是否是水仙花数(水仙花数是指这个数等于个位,十

位和百位的立方和。例如:153=13+53+33) 要求:

程序原代码,及运行结果截图。(直接粘贴在此)

#include using namespace std;

int main() {

cout<<\请输入需要判断的正整数\ int a,g,s,b; cin>>a; g=a; s=(a/10); b=a/100;

if (a==g*g*g+s*s*s+b*b*b) cout<<\该整数为水仙花数\ else cout<<\该整数不是水仙花数\ return 0; }

解决本题的算法思路描述。

首先要解决的是如何取得个十百三位的数字,然后用if语句进行判断。 调试过程的记载(包括出现的错误,以及修改过程) 对十位和百位的数字进行提取的时候出现错误。

开始时: g=a; 改正后:g=a;

s=a0; s=(a/10); b=a00;b=a/100;

4. 输出3到100以内的所有素数。(要求每行显示8个数)

?提示:该题需要用到多重循环,外循环代表需要判断的数,从3到100,内循环判断该数是否是素数,参考教材的例4.9(判断一个数是否为素数)。

要求:

程序原代码,及运行结果截图。。(直接粘贴在此)

#include #include using namespace std; int main() {

int i,n,m=0,s=0,a; for (i=3;i<=100;i++) { a=1; for (n=2;n

}

{ a=0; break; } } if (a==1) { cout<

return 0;

解决本题的算法思路描述

运用双重循环语句进行,一个用来判断是否为素数,另外一个用来循环3-100. 调试过程的记载(包括出现的错误,以及修改过程)

a需要每次循环都赋值,最初放在循环外,导致只能输出3一个数字。 花括号位置错误,导致格式不正确。

5. 连续输入n 个整数(n由键盘输入)统计其中正数、负数和零的个数。 要求:

程序原代码,及运行结果截图。。(直接粘贴在此)

#include using namespace std; int main() {

cout<<\请输入所需统计的数字的个数\ int i=1,z=0,f=0,l=0,n,a; cin>>n;

cout<<\请输入所需统计的数据\ for (;i<=n;i++) { cin>>a;

本文来源:https://www.bwwdw.com/article/uzm2.html

Top