实验项目名称:实验5 循环结构程序设计(while、do-while语句的应用)
实验项目类型:验证性
实验日期:2024年4月11日
一、实验目的
1.熟练掌握三种循环语句并能正确运用;
2.能够用循环实现一些常用算法,如穷举法,迭代法,递推法等;
3.进一步学习程序调试;
4.了解中国算法,百钱买百鸡。
二、实验硬、软件环境
Windows计算机、Dev c 6.0
三、实验内容及步骤
实验内容:
编写程序:
(1)用while语句计算自然数列1,2,3……,n的和,n的值在程序执行时输入。
(2)用do-while语句计算n的阶乘
(3)用while语句编写程序求20+21+22+23+24+……+263
(4)用while语句编写程序。输入一行字符,求出其中字母、数字和其他字符的个数。
思考题:小明妈妈给他买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。到第10天再想吃时,只剩下一块了。设计一个程序计算小明妈妈总共给小明买了多少块巧克力?
实验步骤:
项目1
解题思路:利用int声明i=1,n,sum。scanf%d调用n,利用while定义i,输入表达式sum+=i<=n,i++;最后利用printf函数输出sum的值。
核心代码:
include <stdio.h>
int main()
{
int i,n,sum=0;
i=1;
printf("请输入n的值:\n");
scanf("%d",&n);
while(i<=n)
{
sum=sum+i;
i++;
}
printf("sum=%d\n",sum);
printf("15常发桂-项目1");
}
实验截图:
项目2
解题思路:先声明整型变量n,i,k,再利用for语句输入i=1;i<=n;i++,再输入公式k=i*k,最后再用printf函数输出结果即可。
核心代码:
include <stdio.h>
int main()
{
int n,i,k=1;
i=1;
printf("请输入n的值:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=i*k;
}
printf("%d!=%d\n",n,k);
printf("15常发桂-项目2");
}
实验截图:
项目3
解题思路:输入#include<math.h>,int声明n=0,unsigned long long输入sum=0,while定义i<64,输入表达式sum=sum+(int)pow(2,i);i++。最后利用printf函数输出sum值。
核心代码:
include <stdio.h>
include <math.h>
int main()
{
int n=0;
unsigned long long sum=0;
while(n<=63)
{
sum=sum+(int)pow(2,n);
n++;
}
printf("sum=%llu\n",sum);
printf("15常发桂-项目3");
}
实验截图:
项目4
解题思路:首先声明字符型变量c和整形变量y ,s, k并将它们的值都赋予0。
根据题意列出表达式,并运用while和if-else函数进行运算,最后用printf函数输出各个字符的个数。
核心代码:
include <stdio.h>
int main()
{
char c;
int y=0,s=0,k=0;
printf("请输入一串字符:");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
y++;
else
if(c>='0'&&c<='9')
s++;
else
k++;
}
printf("英文字母有%d个\n",y);
printf("数字有%d个\n",s);
printf("其他字符有%d个\n",k);
printf("15常发桂-项目4");
}
实验截图:
思考题
解题思路:
int输入l,t,其中l表示剩余巧克力数量,t表示天数,赋初值l=1, t=9.while定义t>=1,输入表达式l=(l+1)2;t--。最后利用printf函数输出妈妈买的巧克数。
核心代码:
include<stdio.h>
int main()
{
int l,t;
l=1;t=9;
while(t>=1)
{
l=(l+1)*2;
t--;
}
printf("妈妈共买了%d块巧克力。\n",l);
printf("15常发桂-思考题");
}
实验截图:
四、实验结果及分析
在项目3中,我没有利用include <math.h>库头文件导致结果一直出现错误,并且也一直出现平方格式输入的错误,经查资料才得以改正。