C语言循环结构程序设计实验报告材料
- 格式:doc
- 大小:63.50 KB
- 文档页数:11
循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。
在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。
另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。
应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。
目的是输入若干个数字,计算它们的平均值。
3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。
4. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
C语言循环结构程序设计实验报告实验目的:掌握C语言循环结构的基本原理和使用方法,能够编写具有循环结构的程序。
实验原理:在C语言中,循环结构主要包括while循环、do-while循环和for 循环三种形式。
通过循环结构,可以使程序中的其中一段代码重复执行多次,从而提高程序的灵活性和效率。
实验内容:1. 用while循环实现计算1-100的累加和。
2. 用do-while循环实现输入一个整数n,计算1到n的累加和。
3. 用for循环实现输出9*9乘法口诀表。
实验过程:1. 用while循环实现计算1-100的累加和。
```c#include <stdio.h>int mainint i = 1;int sum = 0;while (i <= 100)sum += i;i++;}printf("1-100的累加和为:%d\n", sum);return 0;```2. 用do-while循环实现输入一个整数n,计算1到n的累加和。
```c#include <stdio.h>int mainint n, i = 1, sum = 0;printf("请输入一个整数n:");scanf("%d", &n);dosum += i;i++;} while (i <= n);printf("1-%d的累加和为:%d\n", n, sum);return 0;```3. 用for循环实现输出9*9乘法口诀表。
```c#include <stdio.h>int mainint i, j;for (i = 1; i <= 9; i++)for (j = 1; j <= i; j++)printf("%d*%d=%d\t", j, i, i*j);}printf("\n");}return 0;```实验结果:1.1-100的累加和为:50502.输入一个整数n:10,1-10的累加和为:553.```1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=427*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=487*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=547*9=63 8*9=72 9*9=81```实验结论:通过本次实验,学习了C语言中循环结构的基本原理和使用方法。
C语言程序设计实验报告1实验目的(1)熟练掌握while语句、do-while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用三种循环语句实现循环结构;(2)掌握简单、常用的算法,并在变成过程中体验各种算法的编程技巧;(3)进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
2实验内容根据公式pi*pi/6=1/(1*1)+1/(2*2)+…+1/(n*n),求出pi的值3算法描述流程图4源程序#include<stdio.h>#include<math.h>main(){int n,i;float pi,sum=0.0;printf("please enter the number n:");scanf("%d",&n);for(i=1;i<=n;i++)sum+=(float)1/(i*i);sum=6*sum;pi=sqrt(sum);printf("n=%d,pi=%7.6f\n",n,pi);}5测试数据20, 50, 100, 2006运行结果当测试数据为20时:当测试数据为50时:当测试数据为100时:当测试数据为200时:7出现问题及解决方法调用sqrt函数时,需要首先调用标准数学库函数,调用格式#include<math.h>;for循环控制语句中循环条件不是i<n,那样结果为循环加到n-1的值,循环条件应为1 <=n。
8实验心得通过这次试验练习,对实验编程中容易出现的细小问题能够在组建,连接,运行过程中借助提示查找到问题来源并解决;体会到编程是需要细心的,严谨的态度的,很微小错误就会造成实验失败!。
c语言循环实验报告C语言循环实验报告引言:C语言是一种广泛应用于程序设计和开发的高级编程语言。
而循环结构是C语言中最为重要和基础的语法之一,它可以帮助我们重复执行某些特定的代码块,提高程序的效率和灵活性。
本实验旨在通过实际编程实践,探索C语言中循环结构的使用方法和应用场景,并进一步加深对循环的理解。
实验一:for循环在C语言中,for循环是最常用的循环结构之一。
它的基本语法如下:```for (初始化表达式; 条件表达式; 更新表达式) {循环体语句;}```在本实验中,我们使用for循环来实现一个简单的九九乘法表打印程序。
通过嵌套的for循环,我们可以方便地控制行和列的输出,实现乘法表的格式化打印。
以下是代码示例:```#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d * %d = %d\t", j, i, i * j);}printf("\n");}return 0;}```通过运行以上代码,我们可以得到一个完整的九九乘法表。
实验二:while循环除了for循环,C语言中的while循环也是常用的循环结构之一。
它的基本语法如下:```while (条件表达式) {循环体语句;更新表达式;}```在本实验中,我们使用while循环来实现一个简单的猜数字游戏。
游戏规则是计算机随机生成一个1到100的整数,玩家通过输入猜测的数字,计算机根据猜测结果给出相应的提示,直到猜中为止。
以下是代码示例:```#include <stdio.h>#include <stdlib.h>#include <time.h>int main() {int target, guess;srand(time(0));target = rand() % 100 + 1;printf("猜数字游戏开始!\n");printf("请输入一个1到100的整数:"); scanf("%d", &guess);while (guess != target) {if (guess > target) {printf("猜大了!请重新输入:"); } else {printf("猜小了!请重新输入:"); }scanf("%d", &guess);}printf("恭喜你,猜对了!\n");return 0;}```通过运行以上代码,我们可以体验到一个简单而有趣的猜数字游戏。
安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期2019.10.17 指导教师张义实验名称循环结构程序设计一、实验目的1.熟悉使用while语句、do-while语句和for语句实现循环的方法。
2.熟悉在程序设计中用循环的方法实现各种算法。
3.理解程序中循环结构语句的执行过程。
二、实验内容1.程序填空。
分别用for、while和do-while语句编写一个C程序,计算并输出数列1,3,5.…,2n-1,…的前n项之和,其中,n由键盘输入。
2.编程并上机调试运行。
(1)求1!+2!+3!+…+n!(n从键盘输入)。
(2)打印以下图案(用循环实现):** * ** * * * ** * * * * * ** * * * ** * **(3)猴子吃桃,猴子第一天摘若干桃子,当即吃了一半,又多一个,又多一个,第二天吃了剩下桃子一半又多一个。
以后每天早上都吃前一天剩下的一半多一个,这样到了第十天,只剩下一个桃子。
问第一天共摘了多少个桃子?(4)打印九九乘法表。
(5)有算式s=1+12+123+1234+12345+…,从键盘输入n,根据已知算式求前n项之和。
如n=3,则s=1+12+123;n=5,则s=1+12+123+1234+12345。
(6)从键盘输入一串数字字符,将其转换成对应的整数。
如输入字符串“368”,则输出整数368。
*思考题3.在实验内容1的程序(1)输入时,若在“for(i=1;i<=k;____)”语句后多输入一个分号,即“for(i=1;i<=k;____);”,分析程序,写出预期结果。
4.在实验内容1的程序(2)输入时,若while语句后的{}省略,即while(____)s+=i;______;分析程序,写出预期结果。
5.简述while语句和do-while语句的区别。
三、算法流程图或实验步骤(可根据需要增删、修改)1.(1)for语句实现:算法流程图:#include<stdio.h>void main ( ){long s, n, k , i;scanf ("%ld",&n);k=2*n-1;s=0;for(i=1;i<=k;i=i+2)s+=i;printf("1+3+…+%ld=%ld\n",k,s);}实验步骤:Files→New→Files→C++source File→文件名:program4011.c→位置:E:\123\→确定→完善源程序→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看运行结果(2)while语句实现:算法流程图:#include<stdio.h>void main ( ){long s=0,n,i=1;scanf("%ld",&n);while(i<=2*n-1){s+=i;i=i+2;}printf("1+3+…+%ld=%ld\n",2*n-1,s);}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4012.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(3)do-while语句实现:算法流程图:#include<stdio.h>void main ( ){long s=0,n,i=1;scanf("%ld",&n);do{s+=i;i=i+2;}while(i<=2*n-1);printf("1+3+…+%ld=%ld\n",2*n-1,s);}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4013.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果2.(1)算法流程图:#include<stdio.h>void main(){int n,s=0,i,j,t;scanf("%d",&n);for(i=1;i<=n;i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}printf("%d\n",s);return 0;}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4021.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(2)算法流程图:#include<stdio.h>void main(){int i,j,k;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}for(i=1;i<=3;i++){for(j=1;j<=i;j++)printf(" ");for(k=1;k<=7-2*i;k++)printf("*");printf("\n");}}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4022.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(3)算法流程图:#include <stdio.h>int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/x2=x1;day--;}printf("total=%d\n",x1);return 0;}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4023.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(4)算法流程图:#include <stdio.h>int main() {int i,j;for(i=1;i<=9;i++) {for(j=1;j<=9;j++)printf("%d*%d=%2d\t", i, j, i*j);printf("\n");}return 0;}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4024.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(5)算法流程图:#include<stdio.h>void main(){int n=0,i=1,m=0,sun=0;printf("请输入一个数");scanf("%d",&n);while(i<=n){m=m*10+i;sun+=m;i++;}printf("%d",sun);}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4025.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(6)算法流程图:#include <stdio.h>void main(){char str[20];scanf("%s",str);printf("%d\n",atoi(str));}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4026.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果3.(1)算法流程图:#include<stdio.h>void main ( ){long s, n, k , i;scanf ("%ld",&n);k=2*n-1;s=0;for(i=1;i<=k;i=i+2);s+=i;printf("1+3+…+%ld=%ld\n",k,s);}(2)实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4031.c→位置:E:\123\→确定→输入修改后的代码→Buid→是→查看编译结果4.(1)算法流程图:#include<stdio.h>void main ( ){long s=0,n,i=1;scanf("%ld",&n);while(i<=2*n-1)s+=i;i=i+2;printf("1+3+…+%ld=%ld\n",2*n-1,s);}(2)实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program4031.c→位置:E:\123\→确定→输入修改后的代码→Buid→是→查看编译结果→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果四、实验结果及分析1.详情见第三项算法流程图2.详情见第三项算法流程图3.预期结果:编译时产生错误4.预期结果:程序虽然编译没有错误,但程序无效,并不能起到原题所需要的功能。
湖北工程学院学生实验报告书实验课程名称C语言开课专业经济学大类指导教师姓名邹晶、郭道猛学生姓名学生班级2016学年-2017学年第1学期实验课程名称:C语言试验项目名称实验4循环结构程序设计(一)实验成绩试验者专业班级组别同组者实验目的:(一)掌握用while,do-while,for语句实现循环的方法;(二)掌握在设计条件型循环结构的程序时,如何正确地设定循环条件,以及如何控制循环的次数。
(三)掌握与循环有关的算法。
实验环境:VC++实验内容:见实验报告指导书实验四, 循环结构程序设计(一)试验过程记录1.输入代码:#include<stdio.h>void main (){int p=1, s=0,i;for(i=1;i<=20;i++) 求1!+2!+3!+……+20! */的值{p*=i;s+=p;}printf("sum=%d\n",s);}结果截图:3.输入代码:#include<stdio.h> 求最大公约数void main (){int m,n,b;printf("please input two positive integer:");scanf("%d%d",&m,&n);while(n!=0){b=m%n;m=n;n=b;}printf("theirgreatest common divisor is %d\n",m);}结果截图:5.输入代码:#include<stdio.h>void main (){int n=0, c;c = getchar (); 统计字符串中指定字符个数while (c !='\n'){if(c>='0'&& c<='9') n++;c=getchar ();printf("%d", n);}}结果截图:6.输入代码:#include <stdio.h>void main(){int a , b, c, i , j; 求奇数及偶数之和a=0,b=1,c=0;for(i=0; i<=100; i+=2){ a+=i;b=i;c+=b;}printf("sum of evens is %d\n",a);printf("sum of evens is %d\n",c);}结果截图:7.输入代码:#include "stdio.h"void main(){int a,b,c,j;for(j=100;j<=999;j++) 水仙花数{a=j/100;b=j/10-a*10;c=j-a*100-b*10;if(j==a*a*a+b*b*b+c*c*c)printf("%d\n",j);}}结果截图:8.输入代码:#include "stdio.h"void main(){float x,amax,amin;scanf("%f",&x); 统计输出最高和最低成绩amax=x;amin=x;while(x>=0){if(x>amax)amax=x;if(x<amax)amax=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}结果截图:9.输入代码:#include "stdio.h"void main(){int m,n,i,t;long int s=0; 不能被3和7整除的整数之和scanf("%d%d",&m,&n);if(m>n){t=m;m=n;n=t;}for(i=m;i<=n;i++)if(i%3!=0 &&i%7!=0)s+=i;printf("sum is;%ld\n",s);}结果截图:10.输入代码:#include <stdio.h>void main(){int num,k;k=0;printf("\please enter a number:");scanf("%d",&num); 计算num各位数字之和do{k+=num%10;num/=10;}while(num);printf("\n%d\n",k); }结果截图:。
一、实验目的1. 掌握循环结构程序设计的基本方法和应用;2. 熟悉C语言、Java语言等编程语言中的循环结构;3. 提高编程能力,学会运用循环结构解决实际问题。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言、Java语言3. 编译器:Visual Studio、NetBeans三、实验内容1. C语言循环结构程序设计(1)编写一个C语言程序,实现输出1-100的累加和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}printf("1-100的累加和为:%d\n", sum);return 0;}```(2)编写一个C语言程序,实现输出16行杨辉三角。
```c#include <stdio.h>int main() {int arr[16][16];int i, j;for (i = 0; i < 16; i++) {for (j = 0; j <= i; j++) {if (j == 0 || i == j) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }printf("%d ", arr[i][j]);}printf("\n");}return 0;}```2. Java语言循环结构程序设计(1)编写一个Java程序,实现输出1-100的累加和。
```javapublic class Sum {public static void main(String[] args) {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}System.out.println("1-100的累加和为:" + sum);}}```(2)编写一个Java程序,实现输出16行杨辉三角。
甘肃政法学院
本科生实验报告
( 五)
姓名:赵明翔
学院:公安技术学院
专业:安全防范工程
班级: 2015级安全防范工程班
实验课程名称:程序设计
实验日期:2016年月日
开课时间:2015学年第二学期
digit++;
else
other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",letters,space,digit,other);
return 0;
}
运行结果:
(2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字李方和等于该数本身。
例如,153是水仙花数,因为153=1²+53+33
程序如下:
#include<stdio.h>
int main()
{
int i,j,k,n;
printf("paicissus numbers are");
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;
}
运行结果:
(3)猴子吃桃问题。
猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第2天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下了1个桃子了。
求第一天共摘了多少桃子。
程序如下:
#include<stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
return 0;
}
运行结果:
(4)①用牛顿迭代法求方程0634223=-+-x x x 在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;
}
运行结果:
②修改程序使所设的x初值由1.5改变为100,1000,10000。
(1)#include<stdio.h>
#include<math.h>
int main()
{double x1,x0,f,f1;
x1=100;
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;
}
运行结果:
(2)#include<stdio.h>
#include<math.h>
int main()
{double x1,x0,f,f1;
x1=1000;
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;
}
运行结果:
(3)#include<stdio.h>
#include<math.h>
int main()
{double x1,x0,f,f1;
x1=10000;
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;
}
运行结果:
分析:
不同的x初值对结果没有影响。
因为牛顿迭代法是利用近似方法求根的计算方法,当后一个近似根减前一个近似根的绝对值小于5
10 时,视后一个近似根为该方程的根,方程的根是唯一的,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初始值对迭代的次数和结果并无影响。
实用文案
标准文档。