翁恺C语言笔记

自学笔记,不一定适合所有人!


目录: 


第一周:

1.1编程软件:

        Windows:Devc++ 5.6.3

1.2第一个c程序:

 cdd138adfff24f1f867975027bfef32d.png

#include <stdio.h>
int main()
{
    printf("Hello World!\n");

    return 0;
}

点击编译运行后保存为c source files文件bf901dff42ff4220b1a2a9869db17e18.png

一次编译之后可以多次运行

1.3详解第一个程序:

#include <stdio.h>

int main()
{

    
    return 0;
}
//程序格式框架,本课程所有程序都有这一段

输出:4546206c6347472a927f1ab068692467.png

出现错误:7dfd110fd96344a0b429aa28499be52e.png 对C语言而言换行,空格不代表什么

往前往后猜错误

切记:不要用中文输入法!!!(双引号以外)

1.4 做点计算:

a1d875ee3c764a618b40a597605afef2.png

后面运算结果会填充到%d

四则运算:4eca9f844fc84066aa06257fdfe869e3.png


第二周:

2.1变量:

2.1.1变量定义:

算找零:

需要:

        1.有地方放数字

        2.有办法输入数字

        3.输入数字可以参与运算

#include <stdio.h>

int main()
{
    int price = 0;

    printf("请输入金额(元):");
    scanf("%d", &price);

    int change = 100 - price;

    printf("找您%d元。\n", change);

    return 0;
}

 就是这个啦

(今后仅仅展示大括号里面的内容)

编译运行后在终端输入数值,按下回车

如何输入:56d3ed25b575404792f2217adc672e29.png

输入的东西去哪里了?

变量--->存放数据

4a6d2a037cad4b60acecc4678a25282c.png

变量定义: 

66d1747c900446f9ab7d51e128dc74f0.png

C语言区分大小写,变量不能和保留字相同

保留字很多但不用背诵 

 2.1.2变量赋值和初始化:

e18d338bac3742c7824f939fc4429c45.png

赋值:75ef2d96f4104af3b45213afd53da044.png 

初始化:9af0d875f6744657904591b534492204.png 

就会出现奇怪的数据

变量初始化:703b9d6fbb7f4a1aa551c4ac30a7e678.png

2.1.3变量输入:

7dacd3010f0940ec9906b9f64fc3b759.png

不是整数直接按照price=0执行

2.1.4常量VS变量:

常量:

用大写,固定数字尽量用常量,免得莫名其妙

常量放在开头

82ed85ca024646a29f2728b8aaf23499.png

 8157a3d3083f49bab855545e6ed9b8c7.png

const:

4e7b64bf5259423d8b4b161418a6b87b.png 改进一下:

e99a8ccca7a04833ba8fc3528dbcd1de.png

 c53007423ee845058f628d112e60398e.png

d78776f0e60c40e7ba3163c038cf804e.png

输入一个数字,空格再输入

如果输入的不是数字,a,b也没有初始化就会有奇怪的数据出现

2.1.5浮点数:

身高计算:e48ac32d0535466796d712a39ad9758f.png 

printf("请输入身高英尺和英寸:");

int foot;
int inch;

scanf("%d %d",&foot, &inch);

prinft("身高是%f米.\n",((foot + inch / 12) * 0.3048));

 结果输入的英寸数据不起作用

为啥?

87092e0377e14dceaee54e9d7af810a1.png

 浮点数:

0ff2ac98f3a644aaaa253136a5eb8fca.png

改进:

6434b24976ec48dfa2b1f6974c48b093.png

a11cc1f558ed456496c93ceb77d3d10c.png

全新版本:

数据值改为double,用lf而不是d

45a919c42ec845a9af73b243ccc7620d.png

 数据类型:

fd76c90d863c4eecbf9e5f442dd7803b.png

 整数:

e0425456b0f14d1e854287fd05b1f82a.png

2.2表达式: 

2.2.1表达式:

69bdd3c7847c45a78c8a519c1f425b40.png

count = count + 1整个式子是一个表达式

运算符:

dad20cc4295c409abcd9a9de50635490.png

9ec90dc29f1145f496c8b143891e32b3.png

计算:

dee01195a9c648e1bd9ee31af3170dfc.png

 计算符号:

474db72fd65043f790ed1738610fedde.png

计算时间差:

18f1464e5637448dafb6c18dd1f271f9.png

改进:

39ed8766d78945b1ba2a1acb073267ee.png

2.2.2运算符优先级:

运算符优先级:

75d9fe8f3f054e88a830fa931863a8c0.png

单目:

9e2d42b2751f4a3babff9d0db0f0e957.png

赋值运算符:

1bb4aed0882f47e698b9c6b48f8bd485.png

嵌入式赋值:

801b7109982645f38437e06740610750.png

计算复利:

f34e16a74b8b4262905aa2fd0089d759.png

e9758d86ba9a48638be37d37b8adc066.png

由于C语言没有幂运算符号,因此只能用循环来解决

现在还无法计算!

 2.2.3交换变量:

33dc011c6eaf459b8ba3a70654bc43a7.png

e899b092d8a2418ab3dadfeaf9c37832.png

加入第三者:

1153d84ed0dd452b8d3a345118ecd186.png

2.2.4复合赋值和递增递减:

复合赋值:

56d4ddb3d39d41e9ac47c63d16e1c641.png

184825db2e1c4cbda80550846663bbfd.png

 递增递减运算符:

78eb3e0cce6142efaa3de69e4b3488d9.png

前后缀:

438014e1f71040d098cd1264d74052df.png

456da7ffc73f43f9b8d81014f2dfa406.png

禁止套娃:09d2cf29acda4ba2ad19f70c697a00fd.png 


第三周:判断:

3.1判断:

3.1.1做判断:

计算时间差:

8c02e79678aa4a5981865a587eb57186.png

如果

83284f256a24478dad6ae5454f69e4d1.png

 039e2e324f5f4c559f56068b5ce07753.png

if 语句:

157c7723a7e4417481808ed61a3f6060.png

3.1.2判断条件:

关系运算:

7b77ae3e9d434d608858e9a19298517a.png

81a3f710ddcb49c880d3594c40e17d93.png

优先级:

cdc0f5cdbd6d418a93563814679c14e8.png

6aac60ae70e540aabbef23dbaea69238.png

3.1.3找零计算机:

c0d04e26357c4c35ac34804289814203.png

a5111241931145fb9b3d3e02579f2c95.png

bcf4dd4ec4d84f508ea645f4b8630e09.png

注释:

67d608e1f12d4a68aab559ab8527719d.png

/* */注释:

c1655a9ca99f4b6594d63acb49ba594e.png

c5e4ad1ab82d4573a2f67c4b6ef249cc.png

3.1.4否则的话:

fcc46d06508741dfbbf3ec17e632e15f.png

e867e5253c2e4835ac6818e67f1e16be.png

5a2ddf29a6564a6a8015c778bde7c5f4.png 8e7456d8eb8b4ee9a0c4241f4def4fcc.png

ee0db129f63247a0aefa825ce868fcd3.png

57d0900e30ad4364b27cb110879c3a1e.png

比较数的大小:

e9dc8949d33c4026981cda994aa9c454.png

方案一:

c85c87d47f7245b4867aabaef343b12d.png

方案二:

aad5beeeece64a6a943dbe7a7fc1541f.png

方案三:

ebbc3f2e2f60454a99dd8ab82e61ff4d.png

方案一肯定不行,方案三很聪明,但是有些人读不懂,因此方案二的傻瓜式写法更好

 3.1.5if语句再探:

 0529f10a1e2e467cb23d689ff8eb9e7c.png

if之后没有{}只能接上一句,加了{}才可以有多句语句

bd26f1f14d5c44bd80b5f0e3ea4298e6.png

第一个无论如何都会输出“再见”

第二个只有条件成立才输出“再见” 

3.2分支:

3.2.1嵌套的if-else:

三个数找最大:

2a78ae732d4344c19b3f0beb43b92c1e.png

190ac372fa7b466c8373eb6071c0db97.png

f7028babf2324d6894ad02045df131a4.png

嵌套的判断:

cc783397b7544bfba0d4b43db5e26819.png

else的匹配:

74941cd8c0f74f4fbb405f908818b081.png

缩进:

98b8efca2ed845359550d7893da0daa6.png

3aa2e27a91f74520b23782467d9cf1e6.png

d6b112e8edc244b38918f94107340345.png

这个else是if(player2move ==2)的

0a80992020314aedabc728c10f1c8577.png

第一个if匹配第二个else

第二个if匹配第一个else

17497bf359c54ce5a0d7c891d478a5a9.png

else和第二个if匹配

25c96680f657442f8258932724e249da.png

加了{}后else就和第一个if匹配

好的编程习惯:

929ae84e6c4f4c4392e04df087aeb534.png

3.2.2级联的 if-else if:

分段函数:

4c28378d6b0b4991845eb21b52f33985.png

3297110dcdd241af98940bc1c310ca59.png

2b5078f8ef794149b1a862da0629065a.png

第一种写法比较好,第二种写法限定了数据的使用

3.2.3 if-else常见错误:

尊重warning!!!

ba6bf37700da41da9d96276f18de0513.png

忘了大括号:

0ff360648b744315a58f05a9730965c2.png

if之后的分号:

17663334633c4c8e8fa7835d1382522f.png

错误使用=和==9b196005f61d4e6989d87b4fc40d53c0.png 

代码风格:

c4ec1c114c9e4e5693080c9faaad8110.png

a12cfab47be94d34a141479b9cd2da4f.png

都可以选择

3.2.4多路分支:

b9d8df5bbd7443c1b44f981446c88808.png 传统的if else会一个条件一个条件判断,这样比较慢

使用Switch-case就不会了

 fe951c6fa1034a85a94d159945be7b65.png

 break

be44d45e432f45398b668e65a72a7c56.png

注意:

case语句是执行起点,没有break则一直执行知道遇到break或者结束为止

case相当于站牌 


第四周:循环:

4.1循环

4.1.1循环:

读读几位数:

246a77515838400c9711492fb702b004.png

fa0bc36067ad4903a5c4746f75c725d3.png

人和计算机:

c595cfcc3d98440a97d354091d82bad2.png

ca42e7e79e094e4890ea0196ed18f27b.png

换个思维:

cea46790b6dd415b84fa31bbf3d66528.png

6170974cb44046f9b90ccfd214031d5b.png

59895b0e6fae4f2fbe6910b5faa4c3b6.png

3d29756795ed45baa91bf30d8bf71e8a.png

使用while循环:

8e4f6e25512b4e0ba276476e6946386b.png

 4.1.2while循环:

d86464b88ad6419e87f4e880d1cb0348.png

776e403a98864c578170db4083c3676b.png

while循环:

82b0996a7dbd45aa8d2685e0f316a4b9.png

db9f54bd57eb49099e440d45778c1060.png

看程序运行结果:

4ec323f7257a4c3d9bd23dbb5038c1e6.png

验证:

caff0d5aacfa45309ff905e675475c5d.png

调试:

ab85477b74544da591a6be844065b78e.png

4.1.3do-while循环:

数位数的算法:

9f821f81366b4d42a31764d147640bb2.png

do-while循环:

7c4bd86dc88c46ba9c3a86c1008c0cc7.png

8e6b240624c5498399826a00f7c2a3e4.png

左边do-while

右边while

两种循环:

64fdc33116184fc281b24f6d64843f12.png

59565bf890274125834d6c9c30e8354a.png 4.2循环的应用:

4.2.1循环计算:

72b9ac0022ea44248acc8756d3e699d0.png

小套路:

83b14601467749a5a8a26cea711eb2c9.png

4e0c332878ea4622982edb814d907b7f.png

保证输入1时结果准确

ret = 1

x > 2时对于其他数可以,但是对于1不行

acd128ae2c6e463e933a290ef4e5d5d5.png

循环执行101次

最后输出0

count = -1 

d422bfdd12a84713b533e984a0444853.png

任然循环101次,但打印结果只有100次 

 4.2.2猜数游戏:

ee5efd78a24a48e98759519c22cb39ee.png

482be7f6b7d944e2943135bb24b7dc04.png

a7ddaac25c5842258c94971647470c69.png

随机数:

61f2791d847742df90df676adaefd834.png

%100:

c3ef37f19d0a48808dafd3b326ac557f.png

4.2.3平均数:a60955e4135b4e60b51dbb16aa6f1a29.png

 读变量:

c7c61f005df04d14a7ca38b0c7cb11cf.png

算法:

21e37c357d5c4dd2babf21bc71c9dd7c.png

1c8b7dea45e04331b078fe831de242a9.png

 2b7ce9d20d7943089511ac4cc1feaff1.png

	int x;
	int n = -1;
	int a;
	
	do {
		printf("输入数字:");
		scanf("%d", &x);
		n ++;
		a += x;
	}while(x != -1);
	
	printf("平均数为:%f", 1.0*a/n);

 4.2.4整数逆序:

整数分解:

9f8947ac7e4d4430a97ad5aaa25142c3.png

 逆序:

ead48960965444768b7055c7870cc02e.png


第五周:循环控制:

5.1:第三种循环:

5.1.1for循环:

求阶乘:

addb34e05b4d4975afec037ba4cc08df.png

while:

7c4b515df68e4a6f9cfcb19e2a4c884d.png

for:

10189735ad1148179e9b448b34f64d95.png

for循环:

0cb2e68074544828b15b906a8de9aade.png

1b3ca46c1be94f7385e09fedf0c39e17.png

第一个:初始条件

第二个:判断条件

第三个:执行操作 

小套路:

db55bb18d9234ee481ff9752974f35ca.png

fe5d110c1e274648936954f2607403e3.png

c8db49aa0e7f4a749fbf2d79954e4fb2.png

6c5a07a8640f43d4bb2aa3edac2580b9.png

57c840f2532e4dbea687de5fcf410e42.png

1c6c5da71ec74acbbe0e23852e11a139.png

5.1.2循环的计算和选择:

c8b37f6c257442009b50e8f86945a4f8.png

9de51b21f9fd4c81ac21add16191eb93.png

61fbc072119745bab6da030b326a371b.png

5.2循环控制:

5.2.1循环控制:

素数:

3e34a8edc2ec408188fa08e1e59d9736.png

break和continue:

34d7dbf96e814afa8ed00a2e7e2c149e.png

a1eb6e5461974c15924e0d8f80bd970e.png

 5.2.2嵌套循环:

747b54da0fae45ac94197b2b51c5f299.png

#include <stdio.h>

int main()
{
	int x;
	//int isPrime=1;
	
	for ( x=1; x<=100; x++ ) {
		int i;
		int isPrime = 1;	//	x是素数
		for ( i=2; i<x; i++ ) {
			if ( x % i == 0 ) {
				isPrime = 0;
				break;
			}
		}
		if ( isPrime == 1 ) {
			printf("%d\n", x);
		} 
	}
	
	return 0;
}

输出前50个素数:

#include <stdio.h>

int main()
{
	int x;
	int count = 0;
	
	for (x=1;count<50;x++) {
		int i;
		int a = 1;
		
		for (i=2;i<x;i++) {
			if (x%i == 0 ) {
				a = 0;
				break;
			}
		}
		if ( a == 1) {
			count ++;
			printf("%d\t", x);
			if ( count % 5 == 0) {
				printf("\n");
			}
		}
	}
	return 0;
}

5.2.3从嵌套循环中跳出:

凑硬币:

fab8b494becd41b29e8e7fccf08d1e98.png

#include <stdio.h>
int main() {
	int x;
	printf("输入金额");
	scanf("%d",&x);
	int one, two, five;
	
	for (one=1;one<x;one++) {
		for (two=1;two<x/2;two++) {
			for (five=1;five<x/5;five++) {
				if (one*1 + two*2 + five*5 == x) {
					printf("%d个一角%d个二角%d个五角可以凑到%d元\n", one, two, five, x);
				}
			}
		}
	}
	
	
	return 0;
}

 结果太多了我只要一个

#include <stdio.h>
int main() {
	int x;
	printf("输入金额");
	scanf("%d",&x);
	int one, two, five;
	
	for (one=1;one<x;one++) {
		for (two=1;two<x/2;two++) {
			for (five=1;five<x/5;five++) {
				if (one*1 + two*2 + five*5 == x) {
					printf("%d个一角%d个二角%d个五角可以凑到%d元\n", one, two, five, x);
					break;
				}
			}
		}
	}
	
	
	return 0;
}

加个break咋没用?

原来a4ba3f18d9524f77a2d6d5a7dc4f2630.png

接力但是

a963a8443a5e4a0f893bb74601cff869.png 但是goto更安逸:

#include <stdio.h>
int main() {
	int x;
	printf("输入金额");
	scanf("%d",&x);
	int one, two, five;
	
	for (one=1;one<x;one++) {
		for (two=1;two<x/2;two++) {
			for (five=1;five<x/5;five++) {
				if (one*1 + two*2 + five*5 == x) {
					printf("%d个一角%d个二角%d个五角可以凑到%d元\n", one, two, five, x);
					goto out;
				}
			}
		}
	}
	
out:	
	return 0;
}

 很好

5.3循环应用:

5.3.1求前n项和:

#include <stdio.h>
int main() {
	double sum;
	int n,i;
	n = 10;
	
	for (i=1;i<=n;i++) {
		sum += 1.0/i;
	}
	printf("结果是%f", sum);
	
	
	return 0;
}

5d2679f148934896ac0083d42d6ed9cb.png

带有符号:

#include <stdio.h>
int main() {
	double sum, sign=1.0;
	int i,n;
	printf("输入第n项");
	scanf("%d", &n);
	
	for (i=1;i<=n;i++) {
		sum += sign/i;
		sign = -sign;
	}
	printf("%f", sum);
	
	return 0;
}

660fbee946f94957bfeb1fdf964e52a0.png 5.3.2整数分解:

096c1c279e3c49999ea989ee7be77fd7.png

534a65fddd1a4d81a36f0486736bb6b2.png

65847fb1964c44a08b4cc225e4c92e24.png

112d4afc7e874ca0a54213b946ddfc66.png

8ec1e01c488b4a608bcfd316099743b2.png

1fa37c3da0c4434085d0ff5f8732893e.png 67a049362fd2465983b44482a7c0c4b7.png

4461cef0db084f338a1a0d2f4ef9f3cf.png

ea5d9cd04a1a42948b6e2b19f7589a72.png

#include <stdio.h>
int main() {
	int x=123456;
	printf("请输入正整数:");
	scanf("%d", &x);
	
	int t = x;
	int count = 1;
	
	while (t > 9) {
		t /= 10;
		count *= 10;
		//printf("%d\n", count);
	}
	int a;
	while (count > 0) {
		a = x / count;
		x %= count;
		printf("%d", a);
		if (count > 9) {
			printf(" ");
		}
		count /= 10;

	}
	printf("\n");
	
	return 0;
}

 总算是折腾会了

5.3.3最大公约数:

b1eae1ccaf8e44f5a92ede7415205a26.png

632e1b847a7948f3806fc17ffb96601e.png

辗转相除法:

d72b1bb8513846669a98f8ada19139c8.png

#include <stdio.h>
int main() {
	int a,b,c;
	printf("输入第一个数的值:\n");
	scanf("%d", &a);
	printf("输入第二个数的值:\n");
	scanf("%d", &b);
	
	while ( b > 0) {
		c = a % b;
		a = b;
		b = c;
	}
	printf("最大公约数是:%d", a);
	
	
	return 0;	
}

第六周:数据类型

6.1数据类型:

6.1.1数据类型:

507ef1086176416a89484d6bc7b33001.png

 类型有何不同:

2ad3e087f8f44ec0bb5c8e4c42389fba.png

sizeof:

7829e77957f04346b98429c975f1cde3.png c152b980ccd44cd4a3b72fb99b34b872.png

6.1.2整数:

6aa854cc0a31477d9a021e7e031fedd3.png

91cbbd738bbd4769a874a795a8f8e315.png

6.1.3 整数内部表达:

d098c7e2de1f40a48d8dcfd4b1c3723d.png

怎么表达负数:

4d8eab3a55fc4f9a9b1ccb16774e0d7e.png

二进制负数:

1e692f5e7eca44499adfa1641107fbcc.png

补码:

1b04dff10c224d35890dbea1bf3a48c9.png

6.1.4整数的范围:

数的范围:

0053f3bd0f494016b3030239ba68cf2e.png

整数范围:

eaf88af7413b497599e5873403626705.png

204ab25a887f40f888b473d6be84919e.png

f66a86ff673147f1b82f23d661a2d839.png

 整数越界:

f01c54d23b0b42438bdac19d2f5da905.png

 相当于经度闭环

6.1.5整数格式化:

整数输入输出:

4e260c92d82c43d1987df722b99e7d59.png

 八进制和十六进制:

4adc836fc9644fb2b96a495a0e8a6477.png

b0739b6b26ee4e5ebc7facb23940afcb.png

6.1.6 选择整数类型:

eaaff7b1193b41028203a5a1771c1a11.png

 6.1.7浮点类型:

df291319735a4130b7186f2299d634fb.png

 浮点数输入输出:

f541f1a072584d348763df7206720adc.png

 科学计数法:

d07498f3defb4b689f68e28d2e31acb0.png

输出精度:

5c8905c571364d66b4f6d04749571939.png

 6.1.8浮点数范围和精度:

超过范围的浮点数:

e0c59893576c44be8ef7ce07634c523e.png

 浮点运算的精度:
f96b05bac2b64d038358d95612205a16.png

浮点数的内部表达:

ab1b0000c8af42558cb520fb1e8ab83c.png

 选择浮点类型:
fb43d1afc51e458fa53226317a1ccb12.png

6.1.9字符类型:

490305b223ba4d369910ee26b3d11759.png

 字符输入输出:

410e35914c04408baa3f9d8c67d2b808.png

 混合输入:

a39a94d2f58945f5b91e5416de5822ff.png

字符运算:

903aede9db044524aa42d13dd4b2c0a7.png

大小写转换:

ca3da2d4e20b43f5920600be993c3e68.png

6.1.10逃逸字符:

a691bd92738b44e4a687c691a21d9429.png

3cc0ec1c4f2d4683a01124764c5d7741.png

 制表位:

38acfc258ea541c1b92d5be8c38384e2.png

光标移到固定位置,不是移动固定位数

6.1.11类型转换:

自动类型转换:

b3af268e13d44536ad01f255d418bc65.png 38e099525b714cb9a5c54cacb5ab26b5.png

强制类型转换:

133db201104b46ccb9f5fa2ce18d9e58.png

dcc438b8213a43e797453b5680b4f9a7.png

6.1.12逻辑类型:

6042278c0b37475d93ebdbe2714ff1f6.png

9a37fcfa254c4f1a92054b17d5ac23b7.png

6.2其他运算

6.2.1逻辑类型

dce6a89efb3e4bf6a9e1e3aef3d2cea8.png

 da831c1689f244329556aad92949b644.png

 3dac449d72404e8d8718568b5eb81f51.png

理解一下:

794a172f3b3447618d00005bf429081c.png

 优先级:

9670d630f003487da09915314b7243d2.png

 8dcd7d06e6544a369dd33c1e6bc5a48f.png

短路:

fc8b1623687543a3b37221cefb2ff0ce.png

 6.2.2条件运算:

条件运算符:

80c79f2bad9e42a99f5f2801f64dcf82.png

优先级:

a8b3b29deac548aa98ed511185ce7ded.png

 嵌套表达式:

792efd85c0d945d78d685015c5332043.png

逗号运算:

bf3c68d7c5734bde9549ba204d3b9253.png

在for中使用:

b0574f4a22b24f499d9dca53a9aaa450.png


第七章:函数

7.1函数定义和使用:

7.1.1 初见函数:

求和:

7bc7eb865e484573ab48f6deee2bb9f9.png

2a40ff6caff5415d9e000e8eff606496.png

函数:

ee7aaeded3e14beb8c212797a110a3c9.png

7.1.2函数定义和调用

d519a4d745d5452991996a8d14909573.png

 函数调用:

4565116200084fdda909c6423ce48b11.png

函数返回:

25f5c48c2fa043acb471071619cf1e7b.png

 7.1.3从函数中返回:

a0c420fec1684969964d3ebcfca16108.png

为了单一出口,尽量只有一个return

18a73dc054654f3fb0fdca1bd21925b4.png

没有返回值的函数:

b2d4494911a34db1b160e49adfe1f0ad.png

7.2函数的参数和变量:

7.2.1函数原型:

b239c23b2b0b4fc9980ab4f6b0e3d9c9.png

06298d2a69e049be91d13111336b80e7.png

df8772aedd8440e3aae21975074f0653.png

7.2.2参数传递:

调用函数:

4bd64ed5ad754165abb25716b1501796.png

如果类型不匹配:

64bc055bd99343568dffa7c0c02435a8.png

穿进去了什么:

fda5231fec7d414d9a061e8d5daced8f.png只是把ab的值传了进去,ab没进去 

baa3e14398c24ecaa469501558ae9d12.png

 7.2.3本地变量:

e77940aa8b2a417b89d17edd4f26df92.png

 79d66729397342dc8e48609c37fabe5e.png

1b97e26718794add968bd20ba032bc76.png

 7.2.4其他细节:

没有参数时:

2c493909915c4b2db10bf21760b12ec3.png

符号运算符:

5b8da76531b34dc5b2908352f2890a2b.png

d7bf43c457a94cdba8ecf2ae8fd69d43.png

1dfb29afc32d478794893b2db4f3e9a3.png


第八章:数组:

8.1数组:

8.1.1初试数组993e905a53734b6695a494a8c5ecce48.png

534882259dad40d59766c18ca1ad82c0.png

d0c6e23d9b404de48aca0881bddfab9a.png 如何记录很多数:

b7ce31d182ff448e82e445e18b710b4e.png

这如何是个头?

数组:

75c03c27fe6b4ff6968c487c4c0887ec.png

e77e83c2ad034992bacde3c2793a67ed.png   

8.1.2数组的定义和使用:

定义数组:

13ee9ba23b0c4e9cb144f5b325acc3aa.png

数组是什么:

3cf95b5bed4547e3a7b0cba779f1b76f.png

84ce9bdfd6784f45aafe477543307ed1.png

数组的单元:

fd29719595e84066895526ba73ba91cd.png

有效的下标范围:

74c1cc4b7eff4ea9af4c0edbdacf7310.png

2957b6e475d94927ae347733adab8fe8.png

ea0aa393de144a5986073168b978a9ec.png

dadde21953b94ea5bfda6a9046de0ddc.png

8.1.3数字统计:

03da274825ec4f16af0e704d79518015.png

e6478bb583934bc5b7a42d9dae1b1e2f.png

#include <stdio.h>
int main() {
	const int Num = 10;
	int x;
	int count[Num];
	int i;
	
	for ( i=0; i<Num; i++ ) {
		count[i] = 0;
	}
	scanf("%d", &x);
	while ( x!= -1) {
		if ( x>=0 && x<=9 ) {
			count[x]++;
		}
		scanf("%d", &x);
	} 
	for ( i=0; i<Num; i++) {
		printf("%d:%d\n", i, count[i]);
	}
	
	return 0;
} 

8.2数组的运算:

8.2.1数组的运算:

3fb1cf848ba54472b826ffb1fb213f27.png

eda7dee357754e0c9054ebba3c68460b.png

数组的集成初始化:

d39bae46dded4f46a1f6f66ea1fe3df7.png

bc40d11daf8b478cb5b860691b8215fd.png

数组的大小:

b10b8091cfa241789e5c6fc6b1b85bf1.png

数组的赋值:

28114660e6d147f99d3a74196b5c3d21.png

遍历数组:

e79874d5b4134076bdcf3c5af5ba6737.png

dd9b50ae12b343808b2ff1cc99eb9d9c.png

8.2.2素数:

判断素数:

44caa8e106d14d6ab51f6f4ad3c127c7.png

ea3c38dd99a74823b6d5382ed3c11aa8.png

4061d6f0520a4fc28a13892aa18c4329.png

dabc5f6d429243fe81983fc7f2be40c9.png

85172805f33d4b5c86e5c6cc03e60607.png

构造素数表:

743990e5818f43f1ab567df49167fa36.png

63a250bf45d542f2b9ce6df50d6451ee.png

78e4e072f148406d9804868822e590c3.png

8.2.3二维数组:

68a8085057ba4d759c7cafff2729a3bd.png 二维数组的遍历:78a4289812c7466a909e55055d67c947.png

 二维数组的初始化:

c2a8f0cd0ba0497e87f9fea128465fcf.png

7a73859f92d64f8b96848f6480a8cd2f.png

345b73e5083c49d3910e7f52eddd9718.png

a1f17ec8f74a46de9f555aea9da9a336.png

14b1c09ccf4c42a0bd7e2c7b011f1312.png

bec3cdbdbdf34d529e3e9218ba1ca645.png

70a490de8ca74f48b7dcb124a2799153.png


第九章:指针

9.1指针:

9.1.1取地址运算:

d07cd5227f054ad4bfe11a78c775af00.png

b9132012909f4aa8af2af794be377418.png

87050c33d67c4c7384daad573a7d7697.png

相邻数组地址单元相差4

9.1.2指针:81c5efdbba164a0a899e78e82a40e59c.png

指针:

b576676b9d0f4a62885d358e4ac8c455.png

*是加在p上面的,与他远离int与否无关,第三四个式子意思:

指针p和 整数q

指针变量:

7a20ef6e0bb940cb9eeaa0e1de3eedd4.png

作为参数的指针:

15dd809947ff40aba99b1e99ce9d816c.png

03c37ce1e96b4e3b93ba20e8748f1c87.png

8ad6d7e3b5574eb7aede6c777cce6ff2.png

2d0d1c68f9174394af052ff3bb9ee58e.png

13406c4cb2f1489dbc771348047eecb1.png

32位机器的地址和int大小相同,scanf没发现,运行的时候数据写的位置错误  

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值