天天看点

循环结构设计入门

@[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进行无线循环,以达到程序多次尽行

继续阅读