计算机运算思维–枚举
对于一些数学运算而言,计算机本身并不会去寻找一个特定的方法来解决这一类的问题,它更倾向于把可能性一个一个的列举出来,从而得到一个正确的答案,这种不断尝试,一个个列举的方法,就叫:枚举。
C语言的简单程序框架
强调,在写代码过程中,所有代码,符号,均需要使用英文输入法。
#include <stdio.h>
int main()
{
return 0;
}
所有的程序都需要这个框架,在使用函数之前,所有的代码都需要被写在这个花括号内,**return0; **之前
对于C语言的代码来讲,程序中有用的,能够起作用的代码,都需要在其后加上“;”分号。
输出
printf可以使计算机输出我们想让它输出的内容,简单使用方法如下:
printf("Hello World!");
两个"内的内容叫做字符串,printf会将两个双引号中的内容原封不动地输出。
输入
首先定义一个变量t,然后运用输入函数scanf,使我们可以在终端上输入一些数据来给与变量t。
int t;
scanf(" %d " , &t);
“%d”的作用就是讲计算机需要在这里读取一个整数来赋给其后的变量(t)。
“%lf”的作用就是讲计算机需要在这里读取一个含小数点的数(浮点数)来赋给其后的变量(t)。
scanf中必须存在符号==&==,放在接受输入值的变量之前,例如&t
当我们需要输入多个变量时如何使用scanf
举例:
int a = 0 , b = 0 ;
scanf("%d %d", &a , &b);
我们在输入两个数字时要注意严格按照scanf括号中的格式来进行输入
如上所示,两个(%d)之间有一个空格间隔,那么我们输入的两个数字之间也需要有一个空格间隔。
如果两个(%d)之间没有空格,那么我们输入两个数字的时候,中间也不需要有空格。
在输入完两个数字之后按下回车键,使程序接着往下运行即可。
或者我们用下边的方式来进行输入:
int a = 0 ;
scanf("%d" , &a );
int b = 0;
scanf("%d" , &b );
这样可以避免需要注意空格的情况,但是需要我们输入一个数字就按一个回车键,这两种输入方式看个人的代码阅读习惯。
定义一个变量
在定义一个变量的过程中,尽量使用一些易懂的英文单词来表达一个变量,例如 price表示价格,bill 表示账单之类的。
例如这一行代码:
int price = 0;
初学者仅仅需要知道,这一行代码,定义了一个变量。这个变量的名字是price,这个变量的类型是 int(整型) ,其被定义的初始值为0。
它的意义为将等号右边的值交给了等号左边的(或是将等号右边的值赋予等号左边的值)
此赋值过程为初始化
我们定义一个变量,必须要有 类型+变量名称 也可以再加上对于变量的赋值。
变量是一个保存数据的地方,当我们需要在一个程序中保存一些数据时,就可以进行变量的定义,例如上边这一行代码所示,意思为,定义price(价格)为0。这样,我们就可以用这个变量来参与后面的程序运行或者计算当中。
与变量相对的,是为常量
固定不变的数,是常数。在程序中不可改变,直接写在程序里,也称作直接量(literal)。
举例应用:
首先,定义一个变量 价格=100
int price = 100;
在我们写代码的过程中,偶尔会因为代码写的比较多,从而忘记之前已经定义过的一个变量,导致我们再次对同一个变量进行定义,当然,如果这个变量在程序中扮演一个可以改变的角色,那当然是没有问题的,但是如果这个变量不能被更改呢? 那我们在运行程序之后,往往会得到与我们的预期完全不同的结果。
例如:
int price = 100;
int price = 200;
很显然,最后运行程序得出的结果,一定是 价格为200。 因为我们在对价格定义为100之后,再次对其进行了定义,将其赋值为了200。
那么,如果我们想得到一个固定不变的量,我们该在程序中如何写代码呢?
此时我们就需要定义一个常量。
例如:
conse int price = 100;
当我们在程序中用上const int 之后,我们所定义的就是一个常量,固定不变的量。
const是一个修饰符,加在int的前面,用来给这个变量加上一个const(不变的)的属性。
这个const的属性表示这个变量的值一旦初始化,就不能再修改了。
并且如果你尝试对这个具有const属性的变量进行修改,在编译过程中,这个修改就会被编译器发现,并被编译器指出为一个错误。
浮点数
在计算机中,两个整数的运算结果只能使整数,就像是10/3,在计算机的运算结果中,它只会得出3的结果,而不是得出一个3.333……的结果
那么,这是为什么呢?
因为,带小数点的数,与整数,是完全不同的两种数。
就比如在计算机中,10 不等于 10.0 。
来看一个运算:
printf(" %d " , 10/3*3);
在我们正常看来,10/3 * 3的运算结果应该是10
但是在计算机的运算下,10/3 * 3的结果是9
而出现这种情况的原因是,在计算机的运算过程中,10/3 * 3从左到右一步一步算的结果是:10/3=3,3 * 3=9
这就是计算机运算下得出结果9的原因。
那么应该怎样得到正常的运算结果呢?
我们应该先来明白为什么10/3会等于3 这仅仅是因为上边所提到的,在计算机中,两个整数的运算结果,只能是整数,所以10/3,得到的是3,而不是3.333。
为了得到正确的运算结果,我们来引入新的概念:
浮点数 即带小数点的数。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在C语言中,不会遇到定点数。人们借用浮点数来表达所有带小数点的数。
注意浮点数的应用
int a = 10.0;
printf("%f" , a);
scanf("%lf" , &a);
在运用浮点数时,printf中的%d应该为%f
scanf中的%d应该为%lf。