作业介绍
基础语法复习
- 保存小数字的类型是
double - 保存字符的类型是
char - 四舍五入的方法如下
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << fixed << setprecision(2) << 3.1415926;
return 0;
}
int类型之间做除法,结果算的是商,若需要小数结果,应切换为double- 做题步骤
- 首先读题,搞清楚题目意思
- 写好输入格式,题目输入几个变量,每个变量定义的类型
- 按照输出格式写好代码,有些题目需不需要换行等等
long long 和 int 的优缺点
优点: long long 范围大
long long :
int :
缺点:
long long 更加消耗内存,它需要的存储空间大, 计算速度慢于 int
总结:
合适的情况选择合适的数据类型,不要无脑去 long long
自动类型转换与强制类型转换
自动类型转换,例如 char 的变量和 int 的变量参与运算,结果为 int,其转换规则为,范围小的朝范围大的靠拢,类似于大鱼吃小鱼。
强制类型转换,可以借助以下方法实现。
char a;
cin >> a;
cout << (int)a;
通过 (类型名)变量名 来实现对结果的转换,例如 【打印 ASCII 码】 一题中就可以使用强制类型转换。
大小写互相转换
由于相同字母大小写的 ASCII 码差值为 ,故可以借助这个数字实现大小写转换。
char a;
cin >> a; // 输入一个小写字母
char A = a - 32; // 小写转大写是减去 32,反之为加 32
cout << A;
if 语句
格式:
if (表达式)
{
代码 1;
代码 2;
……
}
只要表达式的结果成立,那么花括号括起来的代码都会被执行。
例如
if (1) // 非 0 结果多是 true 都成立
{
cout << "yes";
}
int a = 5, b = 3;
if (a > b) // 5 > 3 成立会执行
{
cout << "yes";
}
注意事项
多个 if 语句并列,它们之间都是互相独立的,成立的就都执行
int a = 5, b = 3;
if (a > b) // 5 > 3 成立会执行
{
cout << "yes";
}
if (a % 2 == 1) // 5 除以 2 的余数是 1 成立执行
{
cout << "yes";
}
if - else 语句
if - else 语句意味如果否则,即如果表达式成立则执行 if 内部的代码,否则执行 else 内部的代码
if (4 % 2 == 0)
{
cout << "yes";
}
else
{
cout << "no";
}
注意
if - else 是一个整体,if 是可以单独出现,else 不能单独出现必须和 if 搭配使用。
重要应用
- 判断一个数字 是不是 的倍数。
可以通过 if (a % b == 0) 是否成立来判断。
例如 if (a % 2 == 0) 可以判断 是不是偶数。
- 交换两个变量的数值。
交换两个变量的数值必须借助中间变量来实现。
例如交换 使得 保存 , 保存 。
int a = 5, b = 3;
cout << "交换前" << endl;
cout << a << " " << b << endl;
int temp = a;
a = b;
b = temp;
cout << "交换后" << endl;
cout << a << " " << b << endl;
- 求三个数字的最大值
例如输入三个数字 求它们三个的最大值。
思路
- 先设定一个最大值变量,例如为
mx该变量需要初始化一个较小的数字,具体多小呢?
需要小于等于将来可能的结果,那么将来可能的结果需要我们自己结合数据范围和题目去分析。
- 用该变量不断地和 比较,更新迭代即可。
#include<iostream>
using namespace std;
/*
int : -20亿 ~ 20亿 -2*10^9 ~ 2*10^9
long long : - 9*10^18 ~ 9*10^18
*/
int main()
{
int a, b, c;
cin >> a >> b >> c;
//最大值变量一定要初始化一个很小的数字,小于等于将来可能的结果
int mx = 0;
//核心做法:用 mx 不断地和 a,b,c 比较然后更新 mx 的值即可。
if (a > mx)
{
mx = a;
}
if (b > mx) // 实际就是 b > a
{
mx = b; // mx 就重新赋值为 b
}
if (c > mx) // 实际就是 a,b 的较大值和 c 去比较的
{
mx = c; // mx 就重新赋值为 c
}
cout << mx;
return 0;
}
求最小值同理
#include<iostream>
using namespace std;
/*
int : -20亿 ~ 20亿 -2*10^9 ~ 2*10^9
long long : - 9*10^18 ~ 9*10^18
*/
int main()
{
int a, b, c;
cin >> a >> b >> c;
//最小值变量一定要初始化一个很大的数字,大于等于将来可能的结果
long long mn = 1e10;
//核心做法:用 mn 不断地和 a,b,c 比较然后更新 mn 的值即可。
if (a < mn)
{
mn = a;
}
if (b < mn) // 实际就是 b < a
{
mn = b; // mn 就重新赋值为 b
}
if (c < mn) // 实际就是 a,b 的较小值和 c 去比较的
{
mn = c; // mn 就重新赋值为 c
}
cout << mn;
return 0;
}
给定三个数字 实现从小到大排序。
- 让 保存三个变量里最小的数字
- 先比较 若 大于 ,交换 的值,经过这个操作, 保存了 的较小值。
- 在比较 ,若 大于 ,交换 ,经过这个操作, 保存了 的较小值。
此时由于 大小关系不确定,故而在比较 的大小关系,若 则交换 的值。
若题目需要从大到小排序,同理实现即可,将所有的大于改为小于即可。
#include<iostream>
using namespace std;
/*
int : -20亿 ~ 20亿 -2*10^9 ~ 2*10^9
long long : - 9*10^18 ~ 9*10^18
*/
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (a > b) // 若 a 大于 b 需要交换 a 和 b
{
int temp = a;
a = b;
b = temp;
}
// 经过第一个 if a 保存的就是 a 和 b 的较小值
if (a > c)
{
int temp = a;
a = c;
c = temp;
}
// 经过第二个 if a 保存的就是 a,b,c 的最小值
// 但是 b,c 的大小还不确定
if (b > c)
{
int temp = b;
b = c;
c = temp;
}
cout << a << " " << b << " " << c;
return 0;
}
中间可以写多个 else if(表达式)
基本框架如下
if (表达式)
{
代码;
}
else if (表达式)
{
代码;
}
else
{
代码;
}
需要注意 else if(表达式) 不能脱离 if() 单独出现
题目
- 状态
- 正在进行…
- 题目
- 37
- 开始时间
- 2025-1-19 0:00
- 截止时间
- 2036-1-18 23:59
- 可延期
- 24 小时