当前位置: 首页 > news >正文

01 C语言计算

C语言计算

1、变量

用途:需要存放输入的数据

定义格式:数据类型 + 变量名(用于区分其他变量)

变量名格式:只能由字母/下划线/数字构成,首位不能是数字;且变量名不能是标识符

image-20230304075856740

**变量赋值和初始化:**使用 = 将右边的值赋值给左边,= 为操作符,有操作符的语句为表达式

如果变量没有初始化,则为内存中不确定的值。

C99标准是支持任意地方对变量进行定义,ANSI标准变量初试化只能放在程序开头。

2、程序输入

scanf("%d",&price)

使用scanf函数,类似printf函数,%d表示接受用户输入整数,&price赋值给price变量。

3、常量vs变量

#include<stdio.h>int main(int argc,char const *argv[]){int price = 0,change = 0;const int AMOUNT 100;printf("请输入金额:");scanf("%d",&price);change = AMOUNT - price;printf("找您%d元\n",change);return 0;
}

为了增加代码可读性,将固定的值100用const int定义为常量(只能C99标准下使用)

常量不可被修改

scanf函数中有几个%d,就会等到用户输入几个整数才会结束读入,中间的回车和空格不在计算当中。

4、表达式

时间差.c

设计思想:将时间转换成分钟为单位,然后作差。小时是差值对60除数,分钟是差值对60的余数

#include<stdio.h>int main(int argc,char const *argv[]){int hour1,hour2,minute1,minute2;int t1,t2,t;scanf("%d %d",&hour1,&minute1);scanf("%d %d",&hour2,&minute2);t1 = hour1 * 60 + minute1;t2 = hour2 * 60 + minute2;t = t1 - t2;printf("时间差是%d小时%d分钟。\n",t / 60,t % 60);return 0;
}

5、运算符优先级

image-20230305202603423

±:单目运算符优先级最高,结合关系是自右向左

*/±:双目运算符优先级第二,符合数学规律,结合关系是自右向左

=:赋值运算优先级最低

a = b = c,运算逻辑是b赋值给c,然后运算结果赋值给a

image-20230305202944825

减少嵌入式赋值,不容易阅读

6、交换两个变量

#include<stdio.h>int main(int argc,char const *argv[]){int a = 5,b = 6;int temp;temp = b;b = a;a = temp;printf("a = %d,b = %d\n",a,b);return 0;
}

程序是顺序执行的步骤,交换两个变量的值需要一个中间变量进行暂存,为程序编写中交换变量常用的套路。

7、复和赋值

image-20230305204212299

会将赋值右边先进行运算,然后再进行赋值右边的运算。

递增递减运算符:++、–

只能对变量进行使用,且放在变量前的最先生效,放在变量后面,语句结束才生效。

http://www.lryc.cn/news/31151.html

相关文章:

  • java单元测试简介(基于SpringBoot)
  • Linux常用命令操作
  • SpringCloud GateWay配置—TLS 和 SSL、Http超时配置
  • python Django中的cookies和session会话保持技术
  • vue3的v-model指令
  • Matlab小波去噪——基于wden函数的去噪分析
  • 分布式对象存储——Apache Hadoop Ozone
  • Linux 和数据库笔记-03
  • 布尔定律---布尔代数的基本定律
  • OSG三维渲染引擎编程学习之七十五:“第七章:OSG场景图形交互” 之 “7.6 多视图”
  • 【计算机】单位制前缀的歧义-KB、kb、MB混用
  • nodejs调用浏览器打开URL链接
  • ARM uboot 的移植2-从三星官方 uboot 开始移植
  • js作用域和作用域链
  • C语言字符串
  • Eureka注册中心快速入门
  • xmu 离散数学 卢杨班作业详解【1-3章】
  • mvn命令
  • JS - 事件循环EventLoop
  • 【Java基础】30分钟Git 从入门到精通
  • 0100 MySQL03
  • 32- PyTorch基础 (PyTorch系列) (深度学习)
  • 用gdb.attach()在gdb下断点但没停下的情况及解决办法
  • Linux入门篇-作业(jobs)调度(本质仍然是进程)
  • vue 监听 取消监听
  • 0103深度优先搜索和单点连通-无向图-数据结构和算法(Java)
  • 进销存管理系统
  • Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
  • 陀螺仪小车(Forerake-Car)
  • Leetcode Day5 含有重复元素集合的组合+