首页 > 其他分享 >C的控制语句:循环

C的控制语句:循环

时间:2023-04-16 22:37:36浏览次数:24  
标签:语句 控制 num int printf 循环 2023 include getchar

C的控制语句:循环

1、三种循环方式--->forwhiledo while

2、函数fabs()

3、编写有返回值的函数


三种循环方式

while

示例代码:

# include<stdio.h>

int main(void)
{
   long num; long sum = 0L; int status;

   printf("请输入一个整型整数进行求和");
   printf("(q 或者 quit 退出):");
   status = scanf("%ld", &num); // scanf()函数特性,如果scanf()函数接收到一个整数,会把该整数存入num当中,并且返回一个1赋值给status
   while (status == 1)
  {
       sum = sum + num;
       printf("请输入一个整型整数进行求和 (q 或者 quit 退出):");
       status = scanf("%ld", &num); // 如果用户输入的不是数字,scanf()函数读取失败,返回0,程序退出--->利用的scanf()的双重特性避免了循环过程中的程序交互输入问题
  }
   printf("这些整型整数的和是:%ld\n", sum);

   getchar();

   return 0;
}

变式:

# include<stdio.h>

int main(void)
{
   long num; long sum = 0L; int status;

   printf("请输入一个整型整数进行求和");
   printf("(q 或者 quit 退出):");
   while ((scanf("%ld", &num)) == 1)
  {
       sum = sum + num;
       printf("请输入一个整型整数进行求和 (q 或者 quit 退出):");
  }

   getchar();

   return 0;
}

注意:

每次循环都被称为一次迭代

循环终止条件:

# include<stdio.h>

int main(void)
{
   int n = 0;

   while (n < 7) // n < 7就是循环终止条件
  {
       printf("n = %d\n", n);
       n++;
       printf("Now n = %d\n", n);
  }
   printf("结束循环!");

   getchar();

   return 0;
}

注意:

# include<stdio.h>

int main(void)
{
   int n = 0;

   while (n < 3)
       printf("Now n = %d", n);
       n++; // 只有跟在循环条件后面的一条语句是循环语句,第二句开始就不是,所以n不会递增,while的循环条件一直为true
   printf("Down!");

   return 0;    
}
_Bool类型

注意:

bool 不是 c语言的关键字, 但是c99标准和c++把bool当作关键字

# include<stdio.h>
# include<stdbool.h> // 定义了Bool类型

int main(void)
{
   long num; long sum = 0L; _Bool input_is_good;

   printf("输入一个数");
   printf("q 或者 quit 退出:");
   input_is_good = (scanf("%ld", &num) == 1);

   while (input_is_good)
  {
       sum = sum + num;
       printf("输入一个数");
       printf("q 或者 quit 退出:");
       input_is_good = (scanf("%ld", &num) == 1);
  }

   printf("Down!");

   getchar();

   return 0;
}

For

/**
* @Author: Lucifer
* @Date: 4/16/2023, 4:40:59 PM
* @LastEditors: Lucifer
* @LastEditTime: 4/16/2023, 4:40:59 PM
* Description: A case about for
* Copyright: Copyright (©)}) 2023 Your Name. All rights reserved.
*/
# include<stdio.h>

int main(void)
{
   const int NUMBER = 22;
   int count;

   for (count = 1; count <= NUMBER; count++)
  {
       printf("Hello World!");
  }

   getchar();

   return 0;
}

字符代替数字作为测试条件和初始值:

# include<stdio.h>

int main(void)
{
   char ch;

   for (ch = 'a'; ch < 'z'; ch++) {
       printf("字符!!!");
  }

   getchar();

   return 0;
}

省略循环表达式写法:

/**
* @Author: Lucifer
* @Date: 4/16/2023, 5:26:45 PM
* @LastEditors: Lucifer
* @LastEditTime: 4/16/2023, 5:26:45 PM
* Description: for循环当中省略表达式的写法
* Copyright: Copyright (©)}) 2023 Your Name. All rights reserved.
*/
# include<stdio.h>

int main(void)
{
   int n, ans, time;
   ans = 2;
   time = 1;

   for (n = 3; ans <= 25;)
  {
       ans = ans * n;
       printf("循环次数: %d \n", time);
       time++;
  }

   printf("n = %d, ans = %d\n", n, ans * n);

   getchar();

   return 0;
}

逗号运算符运用在for循环中表达多种用法:

/**
 * @Author: Lucifer
 * @Date: 4/16/2023, 5:37:23 PM
 * @LastEditors: Lucifer
 * @LastEditTime: 4/16/2023, 5:37:23 PM
 * Description: ,运算符,在一个for循环中,每个条件表达式可以用,来表达多种条件
 * Copyright: Copyright (©)}) 2023 Your Name. All rights reserved.
 */
# include<stdio.h>

int main(void)
{
const int FIRST_OZ = 46;
const int NEXT_OZ = 20;
int ounces, cost;

printf("  ounces cost\n");
for (ounces = 1, cost = FIRST_OZ; ounces &lt;= 16; ounces++, cost += NEXT_OZ)
{
    printf("%5d    $%4.2f\n", ounces, cost / 100.0);
}

getchar();

return 0;

}

示例代码2:

/**
 * @Author: Lucifer
 * @Date: 4/16/2023, 7:41:35 PM
 * @LastEditors: Lucifer
 * @LastEditTime: 4/16/2023, 7:41:35 PM
 * Description: ZenO悖论
 * Copyright: Copyright (©)}) 2023 Your Name. All rights reserved.
 */
# include<stdio.h>

int main(void)
{
int t_ct; // 项计数
double time, power_of_2;
int limit;

printf("输入你想射几米:");
scanf("%d", &amp;limit);
// 箭永远只会行进一半的路程
for (time = 0, power_of_2 = 1, t_ct = 1; t_ct &lt;= limit; t_ct++, power_of_2 *= 2.0)
{
    time += 1.0 / power_of_2;
    printf("time = %f, 当terms = %d \n", time, t_ct);
}

getchar();
getchar();

return 0;

}

do...while

示例代码:

/**
 * @Author: Lucifer
 * @Date: 4/16/2023, 7:47:13 PM
 * @LastEditors: Lucifer
 * @LastEditTime: 4/16/2023, 7:47:13 PM
 * Description: 猜数字游戏
 * Copyright: Copyright (©)}) 2023 Your Name. All rights reserved.
 */
# include<stdio.h>

int main(void)
{
const int secret_code = 13;
int code_entered;

do
{
    printf("有一个内置的数,在10到20之间,猜猜是几?:\n");
    printf("请输入你猜的数:\n");
    scanf("%d", &amp;code_entered);
    getchar();
} while (code_entered != secret_code);

printf("猜对了,游戏结束!");

getchar();

return 0;

}

 

标签:语句,控制,num,int,printf,循环,2023,include,getchar
From: https://www.cnblogs.com/JunkingBoy/p/17324275.html

相关文章

  • 运算符、表达式和语句
    运算符、表达式和语句关键字--->while、typedef运算符--->=、-、*、/、%、++、--复合语句、自动类型转换、强制类型转换编写带有参数的函数while循环示例代码:#include<stdio.h>#defineADJUST7.31intmain(void){constdoubleSCALE=0.333;dou......
  • 成都控制设备订做:利用74373芯片进行单片机IO口扩展的方法介绍
    本文介绍用74373芯片进行微处理器IO口扩展的方法。1.为什么要进行IO口扩展?在电路设计的某些时候,微处理器(如单片机)IO口不够用了,此时该怎么办呢?利用辅助芯片进行IO口扩展是个简单直接的方法,能用较少的成本增多IO口。我处提供单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系......
  • Django基础 - 09路由URL控制与解析
     一、URL路由配置1.1 主路由:主程序目录下的urls.py; 对应属性ROOT_URLCONFurlpatterns=[path('admin/',admin.site.urls),path('index/',index),#配置子路由#include()导入mainapp模块下urls.py中声明的所有子路由path('user/',include......
  • 汉源高科VGA光端机+1路立体声音频+USB鼠标键盘控制光纤延长器
    汉源高科VGA光端机+1路立体声音频+USB鼠标键盘控制光纤延长器......
  • 汉源高科高清DVI音视频光端机+USB键盘鼠标KVM控制dvi光纤收发器延长器
    汉源高科高清DVI音视频光端机+USB键盘鼠标KVM控制dvi光纤收发器延长器......
  • C语言--循环语句
    for循环循环语句中for语句最为常用,其格式为:for(表达式1;表达式2;表达式3)循环语句;不可在for循环内修改循环变量,防止for循环失去控制。循环体表达式可省略但非必要不建议省略。Q:1、请问下列循环要循环多少次?#includeintmain(){inti=0;intk=0;for(i=0,k=0;k......
  • 11.退出循环的语句指令
    1.exit 退出循环,退出脚本  2.break  结束当前循环,或者跳出本次循环,继续执行外面的循环 3.continue 忽略本次循环剩余的代码,直接执行下一次循环 4.案例:发放公钥主机脚本先扫描内网网段的所有主机,存活的主机进行发放本机的公钥 ......
  • 10 while循环基本概述
    1.while循环基本概述只要条件成立,就会反复执行循环语句,直到条件不成立时,才会退出。语法:  #语法示例脚本将一个数字1-9升序打印出来  打印两个数字,一个升序,一个进行降序 2.while循环场景示例  1.创建10个不同日期的文件 2.随机点名脚本 3.while循环读......
  • 2023高效的mysql 随机语句 200万数据为例 用了 0.0030秒
    是的,如果数据表中有200万条记录,使用 ORDERBYRAND() 这种方式来随机选择记录会非常慢,因为MySQL需要对整个表进行排序,然后再返回指定数量的记录。这个过程需要消耗大量的时间和资源。为了提高效率,可以考虑使用其他方法来实现随机选择记录。以下是一些常用的方法:使用 WHER......
  • C语言 选择结构(分支语句)
    前言:在我们初学C语言学习的时是顺序结构,这是最简单程序结构。在顺序结构中,各语言都是按自上而下的顺序执行的,执行完上一个语句就自动执行洗一个语句,是无条件的,不用作任何判断。实际上,在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作,或从给定的两种或多种操作选择一......