标签:
2.1 输入输出进阶
%f:读入输出float/输出double。
%lf:读入double。
%lld:读入输出long long。
%s:读入输出字符串,不需要加“&”。
%u:以无符号整数形式输出整数。
%x:以十六进制形式读入或输出整数。
2.2 算术运算符和算术表达式
精度:double > long long > int > short > char
表达式的值的类型,以操作数中精度高的类型为准。
2.3 关系运算符和逻辑表达式
逻辑表达式是短路计算的。
2.4 其它运算符及运算符优先级
单目运算符、条件运算符、赋值运算符的优先级从右至左结合。
单目运算优于双目运算,关系运算符中“!=”“==”比其他的低一个级别。
作业
1.对齐输出
Description:读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。
Input:只有一行,包含三个整数,整数之间以一个空格分开。
Output:只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
Sample Input:123456789 0 -1
Sample Output:123456789 0 -1
1 #include <cstdio>
2
3 int main()
4 {
5 int a, b, c;
6 scanf("%d %d %d", &a, &b, &c);
7
8 printf("%8d %8d %8d\n", a, b, c);
9
10 return 0;
11 }
2.输出保留12位小数的浮点数
Description:读入一个双精度浮点数,保留12位小数,输出这个浮点数。
Input:只有一行,一个双精度浮点数。
Output:也只有一行,保留12位小数的浮点数。
Sample Input:3.1415926535798932
Sample Output:3.141592653580
1 #include <cstdio>
2
3 int main()
4 {
5 double a;
6 scanf("%lf", &a);
7
8 printf("%.12f\n", a);
9
10 return 0;
11 }
3.空格分隔输出
Description:读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。
Input:共有四行:第一行是一个字符;第二行是一个整数;第三行是一个单精度浮点数;第四行是一个双精度浮点数。
Sample Input:
a
12
2.3
3.2
Sample Output:a 12 2.300000 3.200000
1 #include <cstdio>
2
3 int main()
4 {
5 char a;
6 int b;
7 float c;
8 double d;
9 scanf("%c %d %f %lf", &a, &b, &c, &d);
10
11 printf("%c %d %.6f %.6f\n", a, b, c, d);
12
13 return 0;
14 }
4.计算球的体积
Description:对于半径为r的球,其体积的计算公式为V=4/3*πr3,这里取π= 3.14。现给定r,求V。
Input:输入为一个不超过100的非负实数,即球半径,类型为double。
Output:输出一个实数,即球的体积,保留到小数点后2位。
Sample Input:4
Sample Output:267.95
1 #include <cstdio>
2
3 #define PI 3.14
4
5 int main()
6 {
7 double r;
8 scanf("%lf", &r);
9
10 printf("%.2f\n", 4.0/3*PI*r*r*r);
11
12 return 0;
13 }
5.大象喝水
Description:一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
Input:输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
Output:输出一行,包含一个整数,表示大象至少要喝水的桶数。
Sample Input:23 11
Sample Output:3
1 #include <cstdio>
2
3 #define PI 3.14159
4 #define EPS 1e-8
5
6 int main()
7 {
8 int h, r;
9 scanf("%d %d", &h, &r);
10
11 double f = 20000.0/(h*PI*r*r);
12 int n = f;
13 n += (f-n)>EPS;
14
15 printf("%d\n", n);
16
17 return 0;
18 }
Hint:不要用“a == b”的办法判断两个浮点数是否相等,也不要用“a == 0”的办法判断浮点数 a是否等于0,因为浮点数是有误差的。应该用“a-b>-eps && a-b<-eps“,即a和b的差的绝对值小于某个很小值 eps的办法来判断a和b是否相等。如果结果要保留小数点后面n位,那么 eps可以取 10的-(n+2)次方。
标签:
原文地址:http://www.cnblogs.com/VincentValentine/p/5653347.html