参考链接: 如何用printf输出%d:https://blog.csdn.net/ben1010101010/article/details/89256603
-
printf的用法
- %d
- %.nf 小数点后几位
-
在算法竞赛中,每行输出均应以回车符结束,包括最后一行。
-
注意考虑题中错误输入的情况
-
短路(short-circuit)
C语言中的逻辑运算符都是短路运算符,一旦能确定整个表达式的值,就不再继续计算。
-
sqrt(-10) 结果是 -nan(ind)
Nan是“Not a number”的缩写
ind是“ indeterminate”,即无法确定的数
-
1.0/0.0 0.0/0.0 1/0 都会报错:被零除或对零取模
-
#include<iostream> using namespace std; int main() { int a,b; scanf("%d%d",&a,&b); printf("%d %d\n",a,b); return 0; }
输入:12 s a会正常读取 b无法读取 scanf返回值为0
利用下面的代码来验证上述的猜想
#include<iostream> using namespace std; int main() { int a=100,b=200; int flag=100; flag=scanf("%d%d",&a,&b); printf("%d %d\n",a,b); printf("%d\n",flag); }
输入
12 s
输出结果为
12 200 1
证明在输入字符时,b并没有进行输入,保持原有的初始值200,
flag 为scanf()正确读取的字符数 1。
-
#include <stdio.h> int main() { printf("%%d\n"); getchar(); return 0; }
#include <stdio.h> int main() { printf("%c",'%'); printf("d\n"); getchar(); return 0; }
#include <stdio.h> int main() { printf("%sd\n","%"); getchar(); return 0; }
思考问题:
-
int型整数的最小值和最大值是多少?
int占8字节共32位 其中有一位是符号位 最大值231-1=2147483647 最小值为-231=-2147483648
-
double型浮点数能精确到多少位小数?或者,这个问题本身值得商榷?
笔者认为这个问题值得商榷,因为笔者认为能精确到小数的位数,与有效数字的大小有关系
#include<stdio.h> int main() { double a; scanf("%lf",&a); printf("%.20lf",a/3.0); }
a输入为
1.0
时,输出结果为0.3333333333333331000
精确到小数点后第16位。a输入为
5.0
时,输出结果为1.66666666666666670000
精确到小数点后第17位。所以double的精确度应该在15和16位之间浮动。
-
double型浮点数最大正数值和最小正数值是多少?(不必特别精确)
最小正数值:化成二进制只有最后一位为0,所以最小值为2-1075=2.22507e-308
最大正数值:
IEEE 754规定,超过2^1024的数就会发生正向溢出,记为
Infinity(inf)
-
逻辑运算符“&&”、“||”和“!”(表示逻辑非)的相对优先级是怎样的?也就是说,a&&b||c应理解为(a&&b)||c还是a&&(b||c),或者是随便怎么理解都可以?
我们令a=0,b=0,c=1,如果按第一种结合方式,结果应该为1,而如果按照第二种结合方式的话,结果应该为0, 如果是随机的话,答案也会随机(肯定不可能)。
#include<stdio.h> int main() { int a=0,b=0,c=1; printf("%d",a&&b||c); }
按照上述程序进行实验,输出结果为
1
,证明相对优先级是(a&&b)||c。
解释:优先级:!>&&>||
结合方向: &&、||左结合
!右结合 -
if(a) if(b)x++; else y++;的确切含义是什么?这个else应和哪个if配套?有没有办法明确表达出配套方法?
else y++;应与 if(b)x++;配套
验证:
#include<stdio.h> int main() { int x=1,y=2; int a=1,b=0; if(a) if(b)x++; else y++; printf("x=%d,y=%d",x,y); }
若我们的猜想正确,输出结果应为
x=1,y=3
否则输出结果为
x=1,y=2
输出结果验证了我们的猜想
解释:else应该与其上最近且未进行匹配的if配套
-