#t154. 计算输出1
计算输出1
题目描述
计算表达式 的值,并输出结果。
输入格式
本题没有输入。
输出格式
输出一行,包含一个整数,表示该算式的结果。
数据范围
无。
提示
一、%d 是什么:格式串与占位符
printf 的第一个参数叫格式串,它决定输出长什么样。格式串里写 %d,就表示「这个位置要放一个整数」,printf 会用后面参数里的值替换它。
#include <bits/stdc++.h>
using namespace std;
int main() {
printf("%d\n", 3 + 4); // 输出 7
printf("x=%d, y=%d\n", 3, 5); // 输出 x=3, y=5
printf("%d+%d=%d\n", 1, 2, 3); // 输出 1+2=3
return 0;
}
三条规则,记住就够了:
%d是整数占位符,d来自 decimal(十进制)。- 有几个占位符,后面就必须跟几个参数,从左到右一一对应。第一个参数永远是格式串,真正的值从第二个参数开始。
- 占位符以外的字符原样输出:空格、逗号、加号、等号都会照打。
二、为什么不能直接把数字写进引号里
因为很多题的结果要算出来,不是固定的。printf("%d", 3+4) 让程序去算 3+4;写 printf("7") 只是硬编码,换个输入就错了。
三、新手最常踩的三个坑
printf("%d\n");—— 只写占位符,后面没给值,会输出一个随机数。printf("%d\n", 3.5);——%d只认整数,拿小数去填结果完全不对。printf("%d %d\n", a);—— 两个占位符只给一个变量。
四、自己验证一下
把 printf("%d\n", 3+4) 改成 printf("%d\n", 3*4),看输出是不是变成 12;再把格式串里的逗号换成空格,看输出哪里变了。这样你就摸清了「格式串负责长相、参数负责内容」的分工。
- 把题面的数学式子翻译成 C++:乘号写
*、除号写/,括号仍用圆括号,括号内的先算。 - 可以直接把整个算式放在
printf的第二个参数位置,由%d把它算出的整数打印出来。 - 先手算一遍答案;如果程序输出和手算不一致,多半是某个运算符或括号写错了。
自查:手算结果与程序输出对照;再试着去掉括号,看结果是否变化,体会括号的作用。