2023年8月23日
#include <头文件>
cstdio
有两个函数 printf,scanf 用于输出和输入
int : %d
float : %f
double : %lf
char : %c
long long : %lld
iostream
有 cin 读入,cout 输出
using namespace std;
使用了std命名空间,cin、cout定义在该命名空间中,不引入空间会找不到导致出错
int main()
函数执行入口
基本类型

a+b
?所有 cout、cin 都能用 scanf、printf 替换,但反过来,由于cout、cin效率可能较低会导致超时
? printf %c 会读入空格跟回车,需要手动加一个空格跟回车;cin 不会读入空格跟回车
#include <iostream>
using namespace std;
int main() {
int a, b; // ^ 定义两个变量
cin >> a >> b; // ^ 输入(把cin里的值拿到a里面去、b里面去)
cout << a + b << endl; // ^ 输出
return 0;
}
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int a, b;
scanf("%d%d", &a, &b);
printf("%d %d\n", a + b, a * b);
return 0;
}
%
C++ 中取模看前面的数,如果负数则负数;而在Lua中取模的结果不可能为负数
cout << 5 % 2 << endl; // 1
cout << -5 % 2 << endl; // -1
类型转换
float , double 转 int 下取整 ;int 转 char 整数取ASCII表;
char类型跟int类型运算,结果是int类型;int类型与float型运算会变成float型
隐性类型转换:把精度低的类型转换成另外一个精度高的类型
604
题目要求保留四位小数,考虑到float有效数字位只有6~7位,可能出现精度不准确,故改用 double(未来题目看到浮点数也优先使用double)
#include <cstdio>
int main() {
double r;
scanf("%lf", &r);
printf("A=%.4lf", 3.14159 * r * r);
return 0;
}
653
#include <cstdio>
int main() {
int m;
scanf("%d", &m);
printf("%d\n", m);
printf("%d nota(s) de R$ 100,00\n", m / 100);
m %= 100;
printf("%d nota(s) de R$ 50,00\n", m / 50);
m %= 50;
printf("%d nota(s) de R$ 20,00\n", m / 20);
m %= 20;
printf("%d nota(s) de R$ 10,00\n", m / 10);
m %= 10;
printf("%d nota(s) de R$ 5,00\n", m / 5);
m %= 5;
printf("%d nota(s) de R$ 2,00\n", m / 2);
m %= 2;
printf("%d nota(s) de R$ 1,00\n", m / 1);
return 0;
}
617
由于隐性类型转换,结果为double,用%d表示数字不正确,需要用%lf
#include <cstdio>
int main() {
int a;
scanf("%d", &a);
printf("%.0lf minutos", a / 30.0 * 60);
return 0;
}
618
看数据范围,最大可以到 10 ^ 14 次方远远大于 2 ^ 31,需要改用 long(8字节)
#include <cstdio>
int main() {
long a, b;
scanf("%ld%ld", &a, &b);
printf("%.3lf", a * b / 12.0);
return 0;
}
656
一开始想用两个整数读整数跟小数(%d.%d),但小数位输入可能是 .1 或 .01,读出来都是1,不能处理,只能按浮点数来读
#include <cstdio>
int main() {
double n;
int m;
scanf("%lf", &n);
m = (int)(n * 100);
printf("NOTAS:\n");
printf("%d nota(s) de R$ 100.00\n", m / 10000);
m %= 10000;
printf("%d nota(s) de R$ 50.00\n", m / 5000);
m %= 5000;
printf("%d nota(s) de R$ 20.00\n", m / 2000);
m %= 2000;
printf("%d nota(s) de R$ 10.00\n", m / 1000);
m %= 1000;
printf("%d nota(s) de R$ 5.00\n", m / 500);
m %= 500;
printf("%d nota(s) de R$ 2.00\n", m / 200);
m %= 200;
printf("MOEDAS:\n");
printf("%d moeda(s) de R$ 1.00\n", m / 100);
m %= 100;
printf("%d moeda(s) de R$ 0.50\n", m / 50);
m %= 50;
printf("%d moeda(s) de R$ 0.25\n", m / 25);
m %= 25;
printf("%d moeda(s) de R$ 0.10\n", m / 10);
m %= 10;
printf("%d moeda(s) de R$ 0.05\n", m / 5);
m %= 5;
printf("%d moeda(s) de R$ 0.01\n", m / 1);
return 0;
}
2023年8月24日
字符串的输入
#include <iostream>
using namespace std;
int main() {
strin