1.1 算数表达式

  因为之前直接学的c++,虽说c++继承于c,但还是有些许不同,我索性就从最简单的开始:

程序1-1 计算并输出 1 + 2 的值

1 #include<stdio.h>
2 int main()
3 {
4     printf("%d \n", 1 + 2);
5     return 0;
6 }

  也没什么难的,%d 是占位符,

  编译的时候把后面的值带入,其中d是十进制。

  扩展实验: 把 1+2 改为 8/5

    可以发现输出是1,而不是1.6,原因和c++一样: 8/5确切的含义是 8 除以5 的整数部分。

    要得到1.6也简单。

程序1-2 计算并输出8 / 5的值,并保留小数点后1位

1 #include<stdio.h>
2 int main()
3 {
4     printf("%.1f \n", 8.0 / 5);//将原来的%d改为%.1f
5
6     return 0;
7 }

  

注意:百分号后跟着一个小数点,然后是数字1,代表的是精确到小数点后1位,最后是小写f。

8改为8.0,原因也简单在计算机的世界里整数对整数运算结果就是整数,当有浮点数进行运算时,结果才是浮点数。

总结:

  1.整数输出用%d,浮点数输出用%f。

  2.整数/整数 = 整数;浮点数/浮点数 = 浮点数

程序1-3 复杂表达式的计算

1 #include<stdio.h>
2 #include<math.h>//******************************
3 int main()
4 {
5     printf("%.8f \n",1 + 2 * sqrt(3) / (5 - 0.1));
6
7     return 0;
8 }

这里没什么要注意的,只需知道在程序中遇到数学函数,就得在头文件中包括 math.h

时间: 2024-11-10 07:47:16

1.1 算数表达式的相关文章

算数表达式

一. 算数运算符:由算数运算符连接的字符 + - * / % / 号:如果需要保留小数部分 a.任意的1个数据的类型改为double b.*1.0 让其类型变为double %号:模  求模运算 求余数 二.算数表达式:由算数运算符连接起来的式子. 不能只写一个表达式,因为表达式是有结果的,必须要处理这个结果. 三.算数表达式的结果的类型: a. Byte  short int 互相之间参与算术表达式,那么结果就是int 类型的. b. 其他的情况: 如果参与算数表达式的数据的类型是一致的,那么

利用栈计算算数表达式的值

先将中缀表达式利用栈转换为后缀表达式,然后再利用栈由后缀表达式计算算数表达式的值,具体代码如下: #include <iostream> using namespace std; #include <string> #include <vector> #include <stack> enum Type { OP_NUM, OP_SYMBOL, }; enum Operat { ADD, SUB, MUL, DIV, }; struct Cell { Typ

算数表达式的练习

c中各种运算符的实践 整形运算: #include<stdio.h> int main() { printf("%d",1+2); printf("%d",1*2); printf("%d",1/2); printf("%d",1-2); return 0; } 浮点数运算: #include<stdio.h> int main() { printf("%f",5.0/8.0); /

匹配算数表达式语言

 The Definitive Antlr 4 Reference 2nd Edition  第4章第一小节 学习笔记 匹配算数表达式语言 本例中,只使用基本的算数运算(加,减,乘,除),括号表达式,整数,及变量.例如有如下的表达式. 193 a = 5 b = 6 a+b*2 (1+2)*3 在这里介绍的表达式语言,是由换行符所分割的一组语句构成.语句可以是表达式.赋值运算.或是一个空行.下面是用于解析上述语句及表达式的Antlr文法. grammar expr; prog : stat+;

一般算数表达式转换为“后缀式”

“师创杯”第六届ACM程序设计竞赛获奖情况 2013级新手入门----ACM入门训练指南 --> 数据结构实验之栈二:一般算术表达式转换成后缀式 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之. 输入 输入一个算术表达式,以‘#’字符作为结束标志. 输出 输出该表达式转换所得到的后缀式. 示例输入 a*b+(c-d/e)*f# 示例输出 ab*cde/-f*+

使用E.W.D.Dijkstra设计算法实现算数表达式求值

要求:编程模拟(1+(2+3)*(4*5))的运算过程,重点在于如何解析由括号运算符和数字组成的字符串,并按照正确的顺序完成各种初级运算符的操作. 实现思路:用两个栈(LIFO)结构来实现(一个用于保存运算符,一个用于保存操作数) 将操作数压如操作数栈 将操作符压如操作符栈 忽略左括号 在遇到右括号时,弹出一个运算符,并弹出所需数量的操作数,并将操作符和操作数的运算结果压到操作数栈 1 package com.luochuang.demo.stdlib; 2 3 public class Eva

Python解析 算数表达式求值 栈的使用

使用Python实现一种算数表达式求值的算法,模拟这种使用栈的方式,这是由E.W.Dijkstra在20世纪60年代发明的一种非常简单的算法.代码模拟仅仅表现一种编程思想,代码的逻辑并不完全: if __name__ == "__main__": cal_str = input("请输入算数表达式(e.g.(((1+2)*(3+5))+2), 只适合简单的算数表达式):") num_stack = [] symbol_stack = [] for chr in ca

Java面试(2)-- Java算数表达式

1 class Demo02{ 2 public static void main(String[] args){ 3 //算数运算符 +,-,*,/,%,++,-- 4 5 //例1 6 int a = 1; 7 int b = 2; 8 int c = 3; 9 System.out.println(a+b+c); 10 //结果 6 11 /* 12 a+b+c的执行流程 13 1:去内存中找a对应的数据 14 2:读取下一个运算符 15 3:读取a后面的操作数b,同事尧都区b后面的运算符

建算数表达式树并计算(应付作业,仅供参考)

只是为了应付数据结构老师布置的作业,算式里的数只能是整数: 例如输入 (6+3)*(4-2)*(41-1) 输出 720.00 #include <stdio.h> #include <string.h> const int N = 1000; int m[N], flag; double res; struct Node { double val; char c; Node* left; Node* right; Node() { left = right = NULL; c =

算数表达式求值(中缀表达式转后缀表达式并求值)

中缀表达式转后缀表达式的规则:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出.5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈(如果此时栈顶的运算符为"(",则将这个运算符也压入栈中)6.最终将栈中的元素依次出栈,输出 具体代码实现: 第一步:中缀表达式转后缀表达式 1 package data.st