计算机导论——C语言002

前言
Reduce the problem to its essence.

Even if you struggle, know that for better or for worse, you’re in very good company. But some three months from now, you will be in much better shape. Because this was a beginning. (就像计算机内存溢出后,重启就好了。)

由于设备的内存(RAM)有限,无法精确表达现实世界——这是计算机不擅长的东西
关注代码的底层实践。

何时会自定义函数。但我们不只是希望它在输出层起作用,而是实际上让它有输出(别人给的小抄不能只实际存在,要显示出来让人看见)返回值。

1.注意 加法的输出:不是"x+y",而是"i\n", x+y
希望做一个可以重用的加法函数。——简化代码

2.scope作用域
出现变量未被定义的情况。只在离他最近一层的{}内起作用
解决方法:定义新的函数,并仅把第一行放在主函数代码前面

3.GUI=CLI
把图形操作界面GUI(Graphic User Interface)的操作都转换成发号施令(一行行代码,敲键盘)这是顶层设计,可以加快速度。就像活儿不用实干了而是说出来就能做到,节省时间。

Q:尺寸不美观怎么调整
A:不是把宽的压缩。而是在两个方向上(列行)采取相同的设计。

#include <stdio.h>

int main(void)
 {
 	int n
 	for (int i = 0; i < n; i++)
 	{
	 	for (int j = 0; j < n; j++)
	 		printf("#");
	 	printf("\n");
	 }
 }

可以看出组合不同的想法(通过堆叠/复合函数)
4.若想增加提示,可以用do while,直到获取到满足条件的输入。

	int n;
	do
	{
		n = get_int("Size: ");
	}
	while (n < 1);

5.整数溢出计算机是如何存储的。回绕到差值,解决办法1:重启相当于内存重置。
计算机不是靠位数(number)存储,而是靠比特(bit)存储。所以可以升级软件比如添加晶体管
000 是表示8个数( 2 3 2^{3} 23):0~7
0000 0000 0000 0000 0000 0000 0000 0000 表示40亿个数( 2 32 2^{32} 232):0~ 2 32 − 1 2^{32}-1 2321
计算机中使用的位数有限。这是一个事实。
4294967295

1.中文读数,4个位一断。42,9496,7295 四十二亿 九千四百九十六七千二百九十五
2.英文读数,3个位一断。4,294,967,295 Four billion two hundred ninety four million nine hundred sixty seven thousand two hundred ninety five
十亿 后面9个0
百万 后面6个0
千 后面3个0

解决办法2:数据类型升级int->long(64位)
float-> double (64位),它并不是意味着计数更高,而是指在小数点后可以拥有更多的数字(即保留位数)
truncation 截断
意味着如果你取一个整数,用一个整数除以它。即使得到的是分数值,分数的部分就会被抛弃,因为只基于整数的运算。 (字面意思,小数点后面都认为是0)
type casting 类型转换 来解决截断问题。

int x = get_int("x: ");
int y = get_int("y: ");

float z = (float) x / (float) y;
printf("%.20f\n", z);//可以显示小数点后20位(但由于计算机内存有限,它无法显示无限的3所以会自行舍入弄一个认为和实际接近的有限位数表示)

计算机里小数为什么叫浮点数?
答:因为小数点。它会左右浮动float,所以叫浮点数~

好的习惯

1.尝试在不同的函数中用不同的变量,让自己的思路保持清晰
2.引入变量,把magic number(类似于超参数设定)拎出来。以防改了一个另一个没改。
特别地,若是不想轻易改变的变量,就声明为常量,比如const int n = 5;

Tips

1.在CLI中按⬆可以找到最近的命令
2.输入前部分,按Tab可以补全。
3.代码中希望直接可以改的参数,可以设置成变量n。方便可视化更改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值