@[TOP]循环结构设计
#实验目的
一、了解循环的概念方法
二、熟练掌握for语句和while语句
三、熟练掌握继续和跳出循环的办法
四、能够应用循环解决问题
#实验内容
任务一
任务及其基础
声明用于存储阶乘结果的double型变量result,初始值为零
声明用于存储变量整数n的int型变量n,初始值为1.0
声明int型循环变量i初始值为一
在控制台输出“请输入求阶乘中的n(0~100):\n”提示用户输入n
调用scanf()虚函数获取从键盘输入的n的值
使用if()单分支语句判断n值的合法性,即是否在0到100的范围内,如果在,则先给result赋值为1.0,然后使用for语句计算阶乘,计算过程如下:
循环n次,循环变量i从一开始,在小于等于n的情况下开始递增,每次递增需要计算。
运行代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
double result=1.0;
int n=1,i=1;
int n=1,i=1;
printf("请输入求阶乘中的n(0~100)。输入负数退出本程序:"\n);
scanf("%d",&n);
while(i<=n){
result=result*i;
i++;
}
printf("%lf\n",result);
return o;
}
任务二
字符统计问题
任务描述即步骤
分别统计用户输入的一串字符大大写字母(AZ),小写字母(az)和数字(0~9)的个数,
当用户输入回车统计结束
声明用于存储字符的char型变量ch,初始值为数字0
声明用数存储大写字母个数的int型白能量uppernum,初始值为数字0
声明存储雄安写字母个数的int型变量lownum,初始值为0
声明用于存储数字个数个数的int型变量digitnum,初始值为0
提示用户输入,在控制台输出”请输入一处字符,按回车健结束“
使用while()循环和getchar()函数统计用户输入字符,步骤如:
使用循环,如:
while(ch!=’\n’)
{
}
或者
Do
{
}
while(ch!=’\n’)
每次循环统计不同类型字符个数,具体步骤如下:
调用getchar()函数获取从键盘输入的一个字符,并赋值给ch
如果ch的值在大写字母大范围内,变量uppernum自增
如果chch的值在小写字母内,变量lownum自增
如果ch的值在数字范围内,变量digitnum自增
输出三个整形变量的值
运行代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(){
char ch;
int dx=0,xx=0,sz=0;
printf("请输入一串字符,按回车键结束;\n");
while((ch=getchar()!='\n'){
if((ch>='a')&&(ch<='z'))
xx++;
else if((ch>='A')&&(ch<='Z'))
dx++;
else if((ch>='0')&&(ch<='9'))
sz++;
}
prinft("xx=%d,dx=%d,sz=%d\n",xx,dx,sz);
return 0;
}
任务三
无线循环计算阶乘问题
编写一个结算阶乘的小程序,用户输入一个正整数,程序就计算一次输入数字的阶乘,知道用户输入一个负数,程序才退出。本任务需要使用而从循环和条件分支语句。
任务描述及步骤
在任务一的基础上完成任务
声明用于存储阶乘结果的double型变量result,初始值为1
声明用于存储n的int型变量n,数是值为1,设革命int型循环变量i,初始值为1
第一重循环:使用无线循环while语句在第一重循环内完成如下内容:
在控制台中输出”请输入求阶乘中的n(0~100),输入负整数退出本程序:“提示用户输入n
调用用scanf()函数获取从键盘中输入的n的值
使用if单分支语句判断n的合法性,如果n小于0,使用break语句跳出第一重循环,如果n值等于0,使用continue语句返回1继续循环
如果n值在1到100的范围内,则先给result赋值为1.0,然后使用for语句计算阶乘,循环过程为:循环n次,循环变量i
从1开始,在小于等于n的情况下开始递增,每次递增需要计算
result*=1;
输出n及其对应的阶乘结果
程序退出
运行代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double result=1.0;
int n=1,i=1;
while(1){
printf("请输入求阶乘中的n(0~100),输入负数退出本程序:");
scanf("%d",&n);
/*判断语句开始*/
if(i<0)
break;
if(i==0)
continue;
if((n>0)&&(n<100))
{
result=1.0;
for(i=1;i<=n;i++)
result*=i;
printf("%.0lf\n",result);
}
}
return 0;
}
本章节主要对于循环结构的使用,对于判断一类,一般利用while进行无线循环,以达到程序多次尽行