c语言(基本运算)

2024-09-07 16:18
文章标签 语言 基本 运算

本文主要是介绍c语言(基本运算),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

算术运算符的基本使用:

#include <stdio.h>int main()
{int a = 10 + 1 + 2 - 3 + 5;printf("10 + 1 + 2 - 3 + 5 = %d\n", a); //10 + 1 + 2 - 3 + 5 = 15int b = -10;printf("b = %d\n", b); //b = -10int c = 10 * b;printf("10 * b = %d\n", c); //10 * b = -100int d = 1 / 2;printf("1 / 2 = %d\n", d); //1 / 2 = 0int e = -10 % -3; //%两边必须都是整数,取余结果的正负性只跟%左边的数值有关。printf("-10 除以-3 得到的余数是:%d\n", e); //-1return 0;
}


自动类型转换 

#include <stdio.h>int main()
{//double -> int,警告,丢失精度!//int a = 10.8;//printf("a = %d\n", a); //10//强制类型转换int b = (int)10.8;//自动类型提升double c = 10.6 + 6;printf("10.6 + 6 = %f\n", c); //16.600000//参与运算的值是什么类型,结果就是什么类型。double d = 1 / 3;printf("1 / 3 = %f\n", d); //0.000000//想要精确的结果,将参与运算的其中一个值变成doubledouble e = 3 / 2.0;printf("3 / 2.0 = %f\n", e); //1.500000return 0;
}



思考

1)      当?是什么运算符时,不论整型变量a的值怎么变,结果c都不超过10

int c = a?10;

答:%

2)      提示用户输入两个整数,并输出两个整数的平均数

#include <stdio.h>
#include <math.h>int main()
{int a,b;printf("请输入两个整数,以逗号隔开:\n");scanf("%d,%d", &a, &b);double c = (a + (double)b) / 2;int d = (int)c;double decimal = c - d;int value = (int)(decimal * 10);if(value > 0){printf("%d和%d的平均数是:%.1f\n", a, b, (a+(double)b)/2);}else{printf("%d和%d的平均数是:%.0f\n", a, b, (a+(double)b)/2);}return 0;
}


3)      提示用户输入一个时间的秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒

#include <stdio.h>int main()
{printf("请输入一个秒数:\n");int seconds;scanf("%d", &seconds);printf("您输入的秒数为:%d\n",seconds);int hour = seconds / 3600;int minute = (seconds % 3600) / 60;int second = (seconds % 3600) % 60;if (0 == hour) {printf("转换为标准时间:%dm : %ds\n", minute, second);}else if(0 == hour & 0 == minute) {printf("转换为标准时间:%ds\n", second);}else{printf("转换为标准时间:%dh : %dm : %ds\n", hour, minute, second);}return 0;
}

复合附值运算符:

a += 5 + 6 + 4;//a = a + (5 + 6 + 4);


sizeof的用法:

作用:用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

  •   sizeof(变量\常量 )
  •   sizeof 变量\常量
  •   sizeof(数据类型 )
  •   不能是sizeof 数据类型

#include <stdio.h>int main()
{
//    int size = sizeof(10);
//    int size = sizeof 10.9;//    int a = 10;
//    int size = sizeof(a);
//    int size = sizeof a;//    int size = sizeof(char);
//    int size = sizeof char; //错误printf("size=%d\n", size);return 0;
}

关系运算(比较运算)

1. 真假(c语言没有boolean类型

  •    在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立就是判断条件的真假
  •    怎么判断真假呢?C语言规定,任何数值都有真假性,任何非0值都为只有0才为。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”。
2.关系运算符优先级
  •    关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级于后者:2==3>1
  •    关系运算符的结合方向为“从左往右”: 4>3>2
  •    关系运算符的优先级小于算术运算符:3+4>8-2

3.关系运算符

  • > 、 < 、 >= 、 <= 、 == 、 !=
  • 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。 

4.使用注意

#include <stdio.h>int main()
{int a = 10;int b = 11;//条件成立就返回1,真//条件不成立就返回0,假int result = a > b;printf("%d\n", result); //0return 0;
}


5.练习:

计算下列表达式的值

  •    3 > 4 + 7       //3 > (4 + 7)  ->  0
  •    (3>4) + 7      //0 + 7   ->    7
  •    5 != 4 + 2 * 7 > 3 == 10     //(5 != ((4 + 2 * 7) > 3)) == 10   ->   (5 != 1) == 10   ->   0

运算符的优先级(从高到低)

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=

如果在程序中,要改变运算顺序,可以使用()


逻辑运算

  • 逻辑与 && 、 逻辑或 || 、 逻辑非 ! 、
  • 逻辑运算的结果只有2个:“真”为1,“假”为0
  • 逻辑与 && 和 逻辑或 || 有短路的作用。&&左半边如果是假,右半边就不会执行,它的结果已经是假。||左半边如果是真,右半边就不会执行,它的结果已经是真。


三目运算符

 例: int a = 5 ? 10 : 2;    ->    a = 10;


练习

  •    获得a、b中的最大数      int max = a > b ? a : b;
  •    获得a、b、c中的最大数     int abMax = a > b ? a : b;    int max = abMax > c ? abMax : c;




这篇关于c语言(基本运算)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145547

相关文章

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

uva 575 Skew Binary(位运算)

求第一个以(2^(k+1)-1)为进制的数。 数据不大,可以直接搞。 代码: #include <stdio.h>#include <string.h>const int maxn = 100 + 5;int main(){char num[maxn];while (scanf("%s", num) == 1){if (num[0] == '0')break;int len =