C语言 - 语句

C语言-语句

1. 随机数

作用:随机获取一个数字

  • 对应的头文件
stilib.h
time.h
  • 相关函数
srand()
rand()
  • 使用:

    1、设置随机数种子一个程序只需设置一次

    srand(time(NULL));
    

    2、获取随机数

    int 变量名 = rand();
    
  • 获取指定范围的随机数

    获取0~10的随机数srand(time(NULL));int 变量名 = rand() % 11;获取65~90的随机数srand(time(NULL));int 变量名 = rand() % 26 + 65;获取97~122的随机数srand(time(NULL));int 变量名 = rand() % 26 + 97;获取50~100的随机数srand(time(NULL));int 变量名 = rand() % 51 + 50;
    

例:获取0~10的随机数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main()
{//设置随机数种子srand(time(NULL));//获取随机数int num = rand();printf("num=%d\n", num);return 0;
}

2. 输入

作用:通过键盘等其他可输入设备给程序中输入数据

语法:

1、定义接收数据的变量int num = 0;
2、输入scanf("%d", &num);

例:

#include <stdio.h>int main()
{printf("请输入第一个数: \n");int num01 = 0;scanf("%d", &num01);printf("请输入第二个数: \n");int num02 = 0;scanf("%d", &num02);int sum = num01 + num02;printf("和为: %d\n", sum);return 0;
}

3. 分支语句

作用:判断

分类:

if

可以判断值相同,也可以判断区间

switch

只能判断值是否相同

3.1 if

3.1.1 基本 if 结构
  • 语法:

    if(条件表达式)
    {当条件表达式为真,执行此处代码
    }
    
  • 案例1:

    键盘录入,判断是否成年
    思路:
    1、定义一个变量接收人的年龄
    2、判断年龄是否大于等于18
    3、如果年龄大于等于18显示已成年

    #include <stdio.h>int main()
    {printf("请输入您的年龄:\n");int age = 0;scanf("%d", &age);if(age >= 18){printf("你已经成年了,可以放开浪了!\n");}return 0;
    }
    
3.1.2 if…else…结构
  • 语法:

    if(条件表达式)
    {当条件表达式为真,执行此处代码
    } 
    else
    {当条件表达式为假,执行此处代码
    }
    
  • 案例2:

    键盘录入,判断是否成年
    思路:
    1、定义一个变量接收人的年龄
    2、判断年龄是否大于等于18
    3、如果年龄大于等于18显示已成年,否则显示未成年

    #include <stdio.h>int main()
    {printf("请输入您的年龄:\n");int age = 0;scanf("%d", &age);if(age >= 18){printf("你已经成年了,可以放开浪了!\n");}else{printf("你还未成年,多喝奶快快长大!\n");}return 0;
    }
    
3.1.3 else if 结构
  • 语法:

    if(条件表达式1)
    {当条件表达式1为真,执行此处代码
    } 
    else if(条件表达式2)
    {当条件表达式2为真,执行此处代码
    } 
    ...
    else if(条件表达式n)
    {当条件表达式n为真,执行此处代码
    }
    else
    {当以上条件都不为真,执行此处代码
    }
    

    注意:

    1、else if可以有多个,也可以一个没有
    2、当多个条件同时满足时只执行最上面的一个

  • 案例3:

    去网吧上网
    年龄大于150或小于0,报警
    年龄60~150,显示老爷子回家逗孙子吧
    年龄18~59,显示欢迎光临
    年龄0~17,显示回家写作业去

    #include <stdio.h>
    int main()
    {printf("请输入您的年龄\n");int age;scanf("%d",&age);if(age > 150 || age < 0){printf("报警\n");}else if(60 <= age && age <= 150){printf("回家逗孙子吧\n");}else if(18 <= age && age < 60){printf("欢迎光临\n");}else{printf("回家写作业去吧\n");}return 0;
    }
    

注意:

  • 0、NULL、false 都是 false
  • **其他皆为 true **
3.1.4 if 嵌套

在 if 中使用 if

  • 案例4:满100打8折,会员在打8折
#include <stdio.h>
int main()
{double money = 0;int isVip = 0;printf("请输入本次消费金额\n");scanf("%lf",&money);printf("请输入是否为会员(1:是会员,0不是会员)\n");scanf("%d",&isVip);if(money >= 100){double newMoney = money * 0.8;if(isVip){newMoney = newMoney * 0.8;}printf("本次应付:%.2f元,本次实付:%.2f元,本次优惠:%.2f元\n",money,newMoney,money-newMoney);}else{if(isVip){double newMoney = money * 0.8;printf("本次应付:%.2f元,本次实付:%.2f元,本次优惠:%.2f元\n",money,newMoney,money-newMoney);}else{printf("本次应付:%.2f元,本次实付:%.2f元,本次优惠:%.2f元\n",money,money,0);}}return 0;
}

3.2 switch

语法:switch(变量名){case 常量1:当变量值等于把常量1时执行此处代码break;case 常量2:当变量值等于把常量2时执行此处代码break;...case 常量n:当变量值等于把常量n时执行此处代码break;default:当变量不等于以上所有常量时,执行此处代码break;}
注意:1、case可以有多个, 也可以一个没有2、default可有可无, 最多只能有一个3、break跳出当前代码块, break可以不写,不写会导致贯穿4、不支持判断字符串内容是否相同
  • 案例:

    思路:
    1、定义变量记录输入的月份
    2、提示用户输入月份
    3、等待用户输入月份
    4、判断月份属于那个季节

    2,3,4
    5,6,7,8,9
    10,11
    12,1
    #include <stdio.h>
    int main()
    {int month = 0;printf("请输入月份\n");scanf("%d",&month);switch(month){case 2:case 3:case 4:printf("春\n");break;case 5:case 6:case 7:case 8:case 9:printf("夏\n");break;case 10:case 11:printf("秋\n");break;case 12:case 1:printf("冬\n");break;default:printf("输入有误\n");break;}
    }
    

4. 循环语句

4.1 作用

**重复执行一段代码 **

4.2 分类

whiledo whilefor  

4.3 while

语法:

while(条件表达式)
{循环体:重复执行的代码
}

执行流程:

  • 先判断条件表达式是否为真,如果为真,执行循环体中的代码,
  • 执行完毕后再此判断表达式是否为真,如果为真执行循环体中的代码,
  • 如果为假结束循环。

注意:

​ 死循环:无法停止的循环

案例1:

//打印1~100int i = 1;while(i <= 100){printf("%d\n",i);i++;}//打印100~1int i = 100;while(i >= 1){printf("%d\n",i);i--;}//打印100以内的偶数int i = 0;while(i <= 100){printf("%d\n",i);i = i + 2;}int i = 0;while(i <= 100){if(i % 2 == 0){printf("%d\n",i);} i++;}

4.3 do while

语法:

do
{循环体
} 
while(条件表达式);

执行流程:

  • 先执行一次循环体,
  • 再判断条件表达式是否为真,如果为真,再次执行循环体,
  • 如果为假结束循环

案例2:

#include <stdio.h>
int main()
{/*while(0){printf("while循环体执行了");}*/do{printf("do while\n");}while(0);printf("OVER\n");return 0;
}

面试题:

1、请问那个循环的循环体至少执行一次
do while

4.4 for

int i = 0; //初始化变量while(i < 10) //循环条件
{重复执行的代码 //循环体i++; //改变变量
}

语法:

for(表达式1;条件表达式2;表达式3)
{循环体4
} 

解释:

  • 表达式1: 初始化变量
  • 条件表达式2: 循环条件
  • 表达式3: 改变变量

执行流程:1,2,4,3,2,4,3 … 2

注意:表达式1只执行一次

案例3:

#include <stdio.h>
int main()
{for(int i = 0; i < 10; i++){printf("%d\n",i);}return 0;
}

5. 流程控制语句

break 跳出当前循环
continue 跳过本次循环
goto 跳转到指定位置(禁用)

案例1:break

#include <stdio.h>
int main()
{for(int i = 0; i < 10; i++){if(i == 5){// break跳出当前循环break;}printf("%d\n",i);}printf("OVER\n");return 0;
}//输出:0 1 2 3 4

案例2:continue

#include <stdio.h>
int main()
{for(int i = 0; i < 10; i++){if(i == 5){continue;}printf("%d\n",i);}printf("OVER\n");return 0;
}// 输出: 0 1 2 3 4 6 7 8 9

案例3:goto

#include <stdio.h>
int main()
{printf("11111\n");printf("22222\n");goto xxx;printf("33333\n");printf("44444\n");printf("55555\n");xxx:printf("66666\n");return 0;
}/*
输出:
11111
22222
66666
*/

6. 整数分解

  • 一个整数是由1至多位数字组成的,如何分解出整数的各个位上的数字,然后加以计算
    • 对一个整数做 %10 的操作,就得到它的个位;
    • 对一个整数做 /10 % 10 的操作,就去掉了它的十位;
    • 对一个整数做 /100 % 10 的操作,就去掉了它的 百位;
    • 依此类推。

例:

键盘录入一个3位数,判断该数是否为水仙花数?

  • 水仙花数为:
    • 个位的立方+十位的立方+百位的立方 = 该数本身
#include <stdio.h>
int main()
{printf("请输入一个数: \n");int num = 0;scanf("%d", &num);int g = num % 10;           // num / 1 % 10;int s = num / 10 % 10;      // num / 10 % 10;int b = num / 100;          // num / 100 % 10;if (g*g*g + s*s*s + b*b*b == num){printf("恭喜,你输入的 %d 是一个水仙花数!\n", num);}else{printf("这个数不是水仙花数! 再来一次?\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/171809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

输出后,我悟了!

大家好&#xff0c;我是木川 今天和前同事吃饭聊天&#xff0c;谈到了输出&#xff0c;今天简单谈下关于输出的重要性 一、为什么要输出 1、不输出容易忘&#xff0c;如果不输出很容易就忘记了&#xff0c;如果再遇见一次&#xff0c;还是需要重新学习&#xff0c;实际上是浪费…

有关HarmonyOS-ArkTS的Http通信请求

一、Http简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在Web应用程序之间进行通信的协议&#xff0c;通过运输层的TCP协议建立连接、传输数据。Http通信数据以报文的形式进行传输。Http的一次事务包括一个请求和一个响应。 Http通信是基于客户端-服…

【Linux学习笔记】protobuf 基本数据编码

https://zhuanlan.zhihu.com/p/557457644https://zhuanlan.zhihu.com/p/557457644 [新文导读] 从Base64到Protobuf&#xff0c;详解Protobuf的数据编码原理本篇将从Base64再到Base128编码&#xff0c;带你一起从底层来理解Protobuf的数据编码原理。本文结构总体与 Protobuf 官…

命令行与环境变量【03】

文章目录 1. 为什么要学命令行?2. 命令行的打开方式3. 常用命令3.1 切换磁盘命令3.2 改变目标目录 -- cd4. 在命令行任意启动一个文件5. 小练习:cmd-原神启动6.环境变量本节学习目标: ①理解什么是命令行,为什么要学命令行?   ②掌握如何进行切换磁盘操作(d: e: f:) …

关于SSD的FTL

FTL Flash Translation Layer 闪存转换层 作用&#xff1a;完成主机逻辑地址空间到闪存物理空间的映射 简言之&#xff0c;使用者在C盘下写入一个文件&#xff0c;对应这个文件资料写进SSD,SSD会记录这份资料存储的位置&#xff0c;在HOST再次读取时&#xff0c;从SSD闪存对应位…

【随笔记录】VMware搭建python开发环境

Vmware虚拟机总是连接不到网络。 环境为&#xff1a;笔记本WLAN 解决方法。 1.直接使用VMware 编辑->虚拟网络编辑器->恢复默认设置。 2.取消网卡的IP的dhcp获取&#xff0c;改为static。网关为提供IP的主机的网络IP&#xff08;NAT模式&#xff09; 3.windows打开共享网…

kotlin 防范竞态

当你调用成员&#xff0c;这个成员可能为null&#xff0c;可能为空值&#xff0c;就必须采用防范竞态条件&#xff0c;这个是 KT 编程的规范化 下面举例&#xff1a; 防范竞态条件【尽量使用 &#xff1f; 内置函数 空合并操作符】 fun test(){val info: String ? "&q…

软件学院PTA天梯赛初赛选拔赛题解

目录 7-2 生肖确定&#xff08;模拟&#xff09; AC代码&#xff1a; 7-3 韩信点兵&#xff08;模拟&#xff09; AC代码&#xff1a; 7-4 程序员买包子&#xff08;模拟&#xff09; AC代码&#xff1a; 7-5 h0078. 蛇形矩阵变形 AC代码&#xff1a; 7-6 军事体能成绩…

23.11.26日总结

图片与文字顶部对齐&#xff1a; <div class"addDishImgBox"><span class"addDishImgZi">商品图片&#xff1a;</span><img :src"myStorePhoto" class"addDishImg"> </div> .addDishImgBox{display: f…

8.前端--CSS-文本属性【2023.11.26】

CSS Text&#xff08;文本&#xff09;属性可定义文本的外观&#xff0c;比如文本的颜色、对齐文本、修饰文本、文本缩进、行间距等 1.文本颜色 color 属性用于定义文本的颜色。 语法&#xff1a; div { color: red; }属性&#xff1a; 2.文本对齐 text-align 属性用于设置元…

学生党福音!一个能自定义词库的单词软件--单词魔方

大家好 我是Yhen 这一期给大家介绍一款自制的单词软件–单词魔方 文章目录 一.创作缘由二.功能介绍&升级内容三.使用方法四.程序获取 一.创作缘由 为什么会有想法开发这个单词软件呢&#xff1f; 因为平时自己在做阅读&#xff0c;看电影时积累下来了一些单词 当我想要系…

【Linux】Linux项目自动化构建工具 --- make / makefile

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和Linux还有算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 …

uniapp使用Vue3挂载函数到全局

在uni-app中&#xff0c;我们可以使用Vue3的全局API来挂载函数到全局。以下是一个简单的示例&#xff1a; 首先&#xff0c;我们需要在main.js文件中引入Vue3和我们的全局函数&#xff1a; import { createApp } from vue import App from ./App.vue import globalFunction f…

零基础学python第二天||除法

除法啰嗦&#xff0c;不仅是python。 整数除以整数 进入python交互模式之后&#xff08;以后在本教程中&#xff0c;可能不再重复这类的叙述&#xff0c;只要看到>>>&#xff0c;就说明是在交互模式下&#xff09;&#xff0c;练习下面的运算&#xff1a; >>…

Vue3 实现 PDF 文件在线预览功能

我们可以使用 pdf.js 这个库。首先需要安装 pdf.js&#xff1a; npm install pdfjs-dist接下来&#xff0c;我们在 Vue3 项目中创建一个名为 PdfViewer.vue 的组件&#xff1a; <template><div class"pdf-viewer"><canvas ref"pdfCanvas"…

Grafana采用Nginx反向代理,部分功能报错‘Origin not allowed’ behind proxy

只有部分功能会有这个提示&#xff0c;比如修改密码啥的&#xff0c;网上找了下&#xff0c;官方找到了答案&#xff1a;https://community.grafana.com/t/after-update-to-8-3-5-origin-not-allowed-behind-proxy/60598 有个回复是这样的&#xff1a; tl:dr: try adding prox…

Node.js下载安装及配置镜像源

一、进入官网地址下载安装包 https://nodejs.org/dist 选择对应你系统的Node.js版本 这里我选择的是Windows系统、64位 二、安装程序 &#xff08;1&#xff09;下载完成后&#xff0c;双击安装包&#xff0c;开始安装Node.js (2)直接点【Next】按钮&#xff0c;此处可根据…

【labelimg打不开】

labelimg打不开 一、 报错1.1 排除错误 **解决方法&#xff1a;** 一、 报错 当运行labelimg程序报错此条时 AssertionError: Missing string id : useDefaultLabel 1.1 排除错误 第一&#xff0c;进入创建的虚拟环境&#xff0c;输入pip list 查看是否安装了labelimg 第二&…

数据结构 / 顺序表操作 / 顺序表堆区申请内存

代码 #include <string.h> #include <stdlib.h> #include <stdio.h>#define MAXSIZE 20 typedef int data_type;typedef struct SQLIST {//数据元素data_type arr[MAXSIZE];int len;}sqlist;sqlist *req_mem();int main(int argc, const char *argv[]) {ret…

jmeter 接口测试快速入门 以飞致云平台为例

飞致云电商API地址系统来自飞致云项目。接口API地址&#xff1a;https://gz.fit2cloud.com/swagger-ui.html 飞致云电商系统接口文档 V1.0&#xff1a;见 有道云笔记 该网站可以做接口测试练习。快速了解如何测试接口&#xff0c;如何做关联 系统基地址&#xff1a;https://g…