}
return 0;
}
2.下列程序的功能是:计算一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设兔子不存在死亡问题,请问从第1个月到第20个月,每个月有多少对兔子?要求输出时按行列方式每行显示5个数据。如下图:
编译调试该程序看是否正确,不正确的话修改之直至完全满足要求。并解释出错原因。
int main()
{
int fib0=0,fib1=1,fib2;
int n;
cout<for(n=1;n<=20;n++)
{ fib2=fib0+fib1;
cout<fib1=fib2;
fib0=fib1;
if(n%5==0) cout<}
return 0;
}
语法错误:
1.缺少头文件(iostream以及iomanip)以及命名空间。
2.return 0后的分号为中文分号。
逻辑错误:
1. cout<2.前面已经输出一个月所以n<=19。而且后面的换行也需要改为n+1
3.复制顺序错误,应该为fib0=fib1;fib1=fib2;
改正后的程序:
#include
#include
using namespace std;
int main()
{
int fib0=0,fib1=1,fib2;
int n;
cout<for(n=1;n<=19;n++)
{ fib2=fib0+fib1;
cout<fib0=fib1;
fib1=fib2;
if((n+1)%5==0) cout<}
return 0;
}
3.编程任意输入一个三位数,判断其是否是水仙花数(水仙花数是指这个数等于个位,十位和百位的立方和。例如:153=13+53+33)
要求:
程序原代码,及运行结果截图。(直接粘贴在此)
#include
using namespace std;
{
cout<<"请输入需要判断的正整数"<int a,g,s,b;
cin>>a;
g=a%10;
s=(a/10)%10;
b=a/100;
if (a==g*g*g+s*s*s+b*b*b)
cout<<"该整数为水仙花数"<else
cout<<"该整数不是水仙花数"<return 0;
}
解决本题的算法思路描述。
首先要解决的是如何取得个十百三位的数字,然后用if语句进行判断。
调试过程的记载(包括出现的错误,以及修改过程)
对十位和百位的数字进行提取的时候出现错误。
开始时:g=a%10; 改正后:g=a%10;
s=a%100; s=(a/10)%10;
b=a%1000; 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