紫书笔记 - 第二章(C语言)
先上小紫书PDF链接:
链接:https://pan.baidu.com/s/1WWEr-DOhy3LJv5OdfCtGrQ 提取码:bvls
复制这段内容后打开百度网盘手机App,操作更方便哦
因为之前基本用C在底层编程,很多知识细节没有注意到,用小紫书前面补充一下!
- floor()函数
功能:把一个小数向下取整(即就是如果数是2.2 ,那向下取整的结果就为2.000000)
原型:double floor(doube x);
参数解释:x:是需要计算的数
返回值:成功:返回一个double类型的数,此数默认有6位小数;无失败的返回值
头文件:#include<math.h>
- clock()
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数
(double)clock()/CLOCKS_PER_SEC
我们使用一个输出aabb完全平方数的例子使用上面两个函数:
#include <stdio.h>
#include <math.h>
#include <time.h>
/* 输出aabb完全平方数 */
int main(int argc, char** argv) {
for(int a=1;a<=9;a++){
for(int b=0;b<=9;b++){
int n = a*1100 + b*11;
int m =floor(sqrt(n) + 0.5);//向下取整
if(m*m == n) printf("%d\n",n);
}
}
//打印时间
printf("Time used = %f\n", (double)clock()/CLOCKS_PER_SEC);
return 0;
}
- 输出重定向
函数名:freopen
标准声明:FILE *freopen( const char *path, const char *mode, FILE *stream );
所在文件: <stdio.h>
参数说明:
path: 文件名,用于存储输入输出的自定义文件名。
mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。
stream: 一个文件,通常使用标准流文件。
返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。
功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。
我们使用一个打印倒三角形的程序来测试第三点:
#include <stdio.h>
/* 输出倒三角形 */
int main(int argc, char** argv) {
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int n=0;
scanf("%d",&n);//从文件中获取n值
for(int i=0;i<n;i++){// 行
for(int j=0;j<i;j++)// 空白
printf(" ");
for(int z=0;z<(2*(n-i)-1);z++)// *号
printf("*");
printf("\n");
}
return 0;
}
效果图:
4. scanf()
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
如:scanf("%d %d",&a,&b);
函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。