12.7~12.13学习笔记

知识

循环(C)

上篇
3.无明显循环次数——数值计算迭代

斐波那契数列(Fibonacci)

以输出前20项为例:
int i,f0,f1,fn;
f0=f1=1;
printf("%5d%5d",f0,f1);
i=1;
while(i<19){
		fn=f0+f1;
	    printf("%5d%5d",fn);
	    f0=f1;
	    f1=fn;
  }++i;

4.死循环

break 语句用于强制结束循环。

可以利用死循环进行累加,通过break跳出结束。也可以架一个无穷无尽的死循环,通过break进行功能选择。

eg:判断素数

int t,i,x;
scanf("%d",&x);
for(i=2;i<x;i++{
	if(x%i==0) break;
}
if(i==x){
	printf("NO")
}
else printf("YES")
函数(C)
	fflush(stdin);<stdlib.h>
	清除键盘缓冲
链表(单向)

链表是一种最常见你的采用动态存储分配方式的数据结构。链表中,每个元素称为一个“结点”,每个结点包含存储需要使用的信息和指向另一个结点的指针。

1.建立和输出链表

链表的每个结点都要包含数据域和指针域,即包含不同类型的数据,所以结点的数据类型必须选用结构体类型。C语言允许递归定义。
eg:建立和输出有若干个学生记录的带头结点的单向链表。

#include<stdio.h>
#include<stdlid.h>
#define N sizeof(struct st) 
struct st
{
	long num;
	char name[11];
	float score;
	struct st *next;
 } ;
struct st *creat(void)
{
	struct st *p1,*p2,*head;
	head=p2=(struct st *)malloc(N);
	p1=(struct st *)malloc(N);
	scanf("%ld %s %f",&p1->num,p1->name,&p1->score);
	while(p1->num!=0)
	{
		p2->next=p1;
		p2=p1;
		p1=(struct st *)malloc(N);
		scanf("%ld%s%f",&p1->num,p1->name,&p1->score);
	}
	p2->next=NULL;
	free(p1);
	return head;
}
void main()
{
	struct st *head;
	head=creat();
	print(head);
}

刷题感悟(C)

1.利用三目条件运算符快速给变量赋较大(小)值

#include<stdio.h>
int main(void)
{
	int x=3,y=5;
	int t;
	t=x>y?y:x;
	printf("%d",t);
	return 0;
}

2.零碎小点

符号优先级“==”高于“&&”
break语句在多重循环中,只能退出最靠近
的那一层循环语句
指针类型是四个字节长度。(可以理解为指
针类型存储的是空间的地址,地址在计算机
中是以二进制存储的,是整数,整数是四个
字节,所以指针类型是四个字节)

3.C语言的执行过程

(1)file.c是源文件,通过编辑得到;
(2) file.obj是目标文件,即计算机能够处
理的由二进制指令组成的文件,通过对源
文件进行编译得到;
(3) file.exe是可执行文件,通过将目标文
件与其他目标文件或库函数连接得到。

4.函数有关
需要有返回值;
对指针一定要初始化指向(例如指向“空”----int *p->NULL;),写在函数里的指针很容易变成“野指针”;
使用malloc()函数可以随用随分配空间,是在内存中开辟的新空间,不是随机指向。

总结

继续加油!!
敲代码好快乐,我爱敲代码
恳请各位斧正错误,提出不足
谢谢各位看官!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值