循环结构程序设计实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
运行结果如图:
在得到正确结果后,修改题目,改为猴子吃了前一天剩下的一半后,再吃两个。修改程序如下:
#include<stdio.h>
int main()
{int i,t,n;
i=0;
Leabharlann Baidu
n=1; while(i<=8) {t=(n+2)*2;
//执行 8 次后得到的总数就是第一天所摘得桃子数 //第一天的桃子数是第二天桃子数加 2 后的二倍
n=t;
i++;
}
printf("第 1 天摘得桃子数为:%d\n",t);
return 0;
}
运行结果如图:
(4)用牛顿迭代法求方程 2x3 4x2 3x 6 0 在 1.5 附近的根。编写程序如下:
#include<stdio.h> #include<math.h> int main() {double x1,x0,f,f1; x1=1.5; do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1; }while(fabs(x1-x0)>=1e-5); printf("The root of equation is %5.2f\n",x1); return 0; } 运行结果如图:
课程名称 指导老师 班级
嘉应学院 计算机学院 实验报告
程序设计基础 实验名称
实验地点
实验时间
提交时间
姓名
座号
一、实验目的和要求
(1)熟悉掌握用 while 语句、do…while 语句和 for 语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。
int main()
{int i,t,n;
i=0;
n=1; while(i<=8) {t=(n+1)*2;
//执行 8 次后得到的总数就是第一天所摘得桃子数 //第一天的桃子数是第二天桃子数加 1 后的二倍
n=t;
i++;
} printf("第 1 天摘得桃子数为:%d\n",t);
return 0;
printf("字母数:%d\n 空格数:%d\n 数字数:%d\n 其它字符数:%d\n",letters,space,digit,other); return 0; }
运行结果为:
在得到正确结果后,修改程序使之能分别统计大小写字母、空格、数字、和其它字符的个数。修改程序 如下:
#include <stdio.h> int main()
修改程序使所设的 x 初值由 1.5 改变为 100,1000,10000,其运行结果不变,都为 2.00。因为牛顿迭代法
是利用近似方法求根的计算方法,当后一个近似根减前一个近似根的绝对值小于105 时,视后一个近似根为
该方程的根,方程的根是唯一的,x 的初始赋值对此没有影响。 修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的 x 初始值对迭代的次数有无影响。修
改程序如下:
#include<stdio.h> #include<math.h> int main() {double x1,x0,f,f1; int i=0; printf("请输入 x 的初始赋值:"); scanf("%d",&x1); do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1; i++; printf("第%d 次迭代的结果为: %5.2f\n",i,x1); }while(fabs(x1-x0)>=1e-5); printf("迭代次数为%d\n",i); return 0; } 结果如下图,不同的 x 初始值对迭代的次数和结果并无影响。
{ char c;
int A=0,a=0,space=0,digit=0,other=0; printf("请输入一行字符:\n");
while((c=getchar())!='\n') { if (c>='A' && c<='Z') A++; else if(c>='a' && c<='z') a++; else if (c==' ') space++; else if (c>='0' && c<='9') digit++; else other++; } printf(" 大 写 字 母 数 :%d\n 小 写 字 母 :%d\n
编写程序如下:
#include<stdio.h> int main() {int i,j,k,n; printf("所有水仙花数为:"); for(n=100;n<1000;n++) {i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf(" %d",n); } printf("\n"); return 0; }
数:%d\n",A,a,space,digit,other); return 0;
运行}结果如下:
空 格 数 :%d\n
数 字 数 :%d\n
其它字符
(2)输出所有的“水仙花数”,所谓“水仙花数”是指一个 3 位数,其各位数字立方和等于该数本身。例如,
153 是一个水仙花数,因为153 13 53 33 。
二、实验环境和方法
实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步 改善功能。 (三)根据实验内容,编译程序。
实验环境:Windows xp Visual C++6.0
三、实验内容及过程描述
实验步骤: ① 进入 Visual C++ 6.0 集成环境。 ② 输入自己编好的程序。 ③ 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,
编写程序如下:
#include <stdio.h> int main()
{ char c;
int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n");
while((c=getchar())!='\n')
{ if (c>='a' && c<='z' || c>='A' && c<='Z') letters++; else if (c==' ') space++; else if (c>='0' && c<='9') digit++; else other++; }
及时改正。 ④ 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,
根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果
是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 (1) 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
运行结果为:
(3)猴子吃桃问题。猴子第 1 天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第 2 天又将
剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想吃
时,见只剩下一个桃子了。求第 1 天共摘了多少桃子。编写程序如下: #include<stdio.h>