C语言学习代码,初学者笔记

由于大学的无知,懒惰,学过的c语言可能跟没学一样,自己也不知道学过哪些,需要补的洞还有很多,一点一点把它补全,凡是改变不可接受的,接受不可改变的,做一个内心有光的人。

很喜欢罗翔老师一句话,
其实我不是宿命论,宿命论会导致懒惰。同时我个人其实也不太相信天道酬勤,它会导致人走向骄傲或者虚无。当你成功的时候,你会觉得这是你努力拼搏来的,你配拥有这一切,所以你就瞧不起那些失败的人。但当你努力了拼搏了,最后依然失败,还是一无所成,你会陷入一种极大的抱怨,会认为天道不公。”
“我认为人生95%的事情可能是你自己决定不了的,但是我们依然要用5%的努力去撬动这95%你无法决定的事情,凡事尽力而为
开始复习c语言 跟鹏哥的视频课做一些笔记,会一直补充。

3.21开始学习鹏哥c语言

选择循环语句

结构体struct
定义一本书的时候

struct book
{
	char name[20];
	short price;
};
int main()
{
	struct book a1 = { "c语言程序设计",55 };
	printf("书名%s\n",a1.name);            //结构体变量.成员
	printf("价格%d元\n", a1.price);
	return 0;
}

if switch语句

if 表达式大概分为3种

if(表达式)
语句
if(x>y)
printf("%d",x);

if(表达式)
语句1
else
语句2
if(x>y)
printf("%d",x);
else
printf("%d",y);


if(表达式1)
语句1
else if(表达式2)
语句2
else if(表达式3)
语句3
else
语句4

if语句编写一个输出1-100内的奇数

int main()
{
	int i = 1;

	while (i < 100)
	{
		if (i%2 == 1)
			printf("%d\n", i);
		i++;
	}

	return 0;
}

2.switch 语句

switch(表达式)case 1:语句1;break;
	case 2:语句2;break;
	case 3:语句3;break;

switch 后面的表达式为整形、字符型、枚举型
如果表达式的值跟case后的常量值相同时,就执行后边的语句,break为跳出此程序。

{
	int day = 0;
	scanf_s("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期一");
		break;
	case 2:
		printf("星期二");
		break;
	case 3:
		printf("星期三");
		break;
	}
}

每一个case后 最好都加上break,方便后期添加代码时不会出现问题。

while语句

while(表达式)
{
	语句1

用while输出0-10

int main()
{
	int i = 0;
	while (i <= 10)
	{
		printf("%d\n", i);
		i++;
	}

	return 0;
}

for 语句

for循环是程序中用的比较多的循环语句。
for(初始条件;条件判断;调整语句)
循环语句

用for循环实际问题打印1-10数字

#include<stdio.h>
int main()
{
	int i;
	for (i = 1; i <= 10; i++)printf("%d\n", i);return 0;
}

在这里插入图片描述在这里插入图片描述for循环continue 跳过本次循环后边的部分,进行调整。
while中 continue 跳过后边i++ 无法调整,陷入死循环。

练习题 求一下N的阶乘
n的阶乘就是1234**n-1n。
代码如下

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int i = 0;   
	int n = 0;
	int ab = 1;  //从1开始 不可以是0  0乘任何数都为0.
	scanf("%d", &n);     //输入一个n的值
	for (i = 1; i <= n; i++)
	{
		ab = ab * i;
	}
	printf("%d", ab);
	return 0;
}

在一个有序的数组中,查找一个已知数写个代码。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 6;
	int i = 0;
	for (i = 0; i <= 10; i++)
	{
		if (k == arr[i])
		{
			printf("找到了下标为%d", i);
			break;
		}
		if (i >= 10)
		{
			printf("找不到");
	}
	}
	return 0;
}

**

二分查找算法

**

#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//创建一个数组从0开始。
	int sz = sizeof(arr) / sizeof(arr[0]);//计算数组的长度
	int left = 0;//最左端第一个数的下标
	int right = sz - 1;//最右端最后一个数的下标
	int k =8;  //需要查找的数
	while (left<=right)  //当左下标<右下标的时候进行循环
	{
		int mid = (left + right) / 2;//中间数的下标
		if (k > arr[mid])
		{
			left = mid+1;
		}
		else if (k < arr[mid])
		{
			right = mid-1;
		}
		else
		{
			printf("找到了,下标是%d", mid);
			break;
		}
	}
	if (left > right)
	{
		printf("找不到");
	}
	return 0;
}

在这里插入图片描述
此时k=8,下标是7.

求2个数的最大公约数

int main()
{
    int m =6;
    int n =16;
    int c=0;
    while(m%n)
    {
        c=m%n;
        m=n;
        n=c;
    }
    printf("最大公约数%d",n);
    return 0;
}

函数中,函数声明放在.h文件 函数定义放在.c 文件 使用时#include“ ”调用。
1.sizeof(数组名)计算整个数组的大小,sizeof内部单独放一个数组名,数组名表示整个数组。
2.&数组名,取出的是数组的地址。&数组名,数组名表示整个数组。

除以上情况,所有数组名都表示数组首元素地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值