表达式计算规则与 scanf 输入实践
1. 表达式与括号优先级
复杂的表达式可以使用括号来控制计算顺序,括号使用次数不受限制。多层嵌套时从最内层向外计算。运算符优先级遵循先乘除后加减。
示例解析:2*(3+3*(5+4))
- 最内层
5+4 = 9 - 向内层外推
3 * 9 = 27 - 括号内相加
3+27 = 30 - 最外层相乘
2 * 30 = 60
2. 读取数据的格式说明符
通过 scanf() 处理键盘输入时,需匹配对应的格式控制符(需包含头文件 stdio.h):
| 操作 | 需要的控制字符串 |
|---|---|
读取 short 类型 | %hd |
读取 int 类型 | %d |
读取 long 类型 | %ld |
读取 float 类型 | %f 或 %e |
读取 double 类型 | %lf 或 %le |
注意:
scanf读取float用%f,但读取double必须用%lf(与printf中float自动提升为double表现不同)。
3. 综合代码示例(计算圆桌周长与面积)
利用输入的直径计算周长和面积,演示了变量声明、输入读取、表达式计算及格式化输出:
#include <stdio.h>
int main(void)
{
float radius = 0.0f; // 圆桌半径
float diameter = 0.0f; // 圆桌直径
float circumference = 0.0f; // 圆桌周长
float area = 0.0f; // 圆桌面积
float Pi = 3.14159265f; // 圆周率
printf("请输入圆桌的直径:");
scanf("%f", &diameter); // 读取浮点数,&为寻址运算符
radius = diameter / 2.0f; // 计算半径
circumference = 2.0f * Pi * radius; // 计算周长
area = Pi * radius * radius; // 计算面积
printf("\n周长是%.2f", circumference);
printf("\n面积是%.2f", area);
return 0;
}Code language: PHP (php)
运行输出示例:
请输入圆桌的直径:3
周长是9.42
面积是7.07Code language: CSS (css)
Previous: 格式说明符
Next: #define 定义常量