小记---C

C语言一些零碎东西

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>
#include <stdbool.h>

//int main()
//{
//	/*
//	printf("hehe\n");
//	printf("%f", 3.14);
//	printf("%d", 3);
//	printf("%c", 'h');
//	printf("%d\n", '\n');
//	for (int i = 32;i <= 127;i++)
//	{
//		printf("%c  ", i);
//		if (i % 16 == 15)
//			printf("\n");
//	}
//	printf("%s\n", "hehe");
//	printf("%c ", '\'');
//	printf("%s ", "\"");
//	printf("c\\nde");
//	printf("are u ok??");
//	printf("\a");
//	printf("abcd\bfe");
//	//getchar();
//	printf("a\tbc\tccc\tdddddddd\t");
//	
//	//printf("%d\n", 016);
//	//printf("%c\n", '\130');
//	//printf("%c\n", '\x30');
//	//printf("c\\nde");
//	//printf("%c\n", '\x3f');
//	//printf("%zd\n", strlen("abcd\0df")); //4
//
//	//第二章
//	_Bool a = true;
//	if (a) printf("1\n");
//	bool b = false;
//	if (!b) printf("2\n");
//	int c = 3;
//	if (c) printf("3\n");
//	printf("%zd\n",sizeof(int));
//	printf("%zd\n",sizeof(c));
//	printf("%zd\n", sizeof(3 + 3.5));
//	printf("%zd\n", sizeof(3));
//	short d = 0;
//	printf("%zd\n", sizeof(c = d + 1));
//	printf("%d\n", c);
//	float cc= 2.3f;
//	double bb = 4.5;
//	printf("%f %f\n", cc, bb);
//	return 0;
//	*/
//}

//第二章 全局变量 局部变量

//int m = 100;
//int main()
//{
//	{
//		printf("%d\n", m);
//	}
//	printf("%d\n", m);
//	return 0;
//}

//int main()
//{
//	{
//		int n = 10;
//		printf("%d\n", n);
//	}
//	printf("%d\n", n); //此处会出错
//	return 0;
//}

//加减乘除
//int main()
//{
//	int a = 10;
//	printf("%d\n", 5 * 6);
//	printf("%d\n", 5 * a);
//	return 0;
//}
//
//int main()
//{
//	printf("%d\n", 9 / 2);
//	printf("%f\n", 9 / 2); //0.000000
//	printf("%f\n", 9 / 2.0); //4.500000
//	printf("%f\n", 5 / 20.0 * 100);
//	printf("%d\n", 9 % 2);
//	printf("%d\n", 9 % -2);
//	printf("%d\n", -9 % 2);
//	/*int a = 0;
//	int cc, bb;
//	cc = bb + 1 = a + 2;
//	printf("%d %d\n", bb, cc);*/
//	int a = 3;
//	a += 3;
//	printf("%d\n", a);
//	a++;
//	printf("%d\n", a);
//	a--;
//	printf("%d\n", a);
//	int b = a--;
//	int c = --a;
//	printf("%d %d\n", b, c);
//	int aa = 1;
//	int bbb = (++aa) + (++aa) + (++aa);
//	printf("%d\n", bbb);
//	printf("%d\n", -bbb);
//
//	return 0;
//}

//printf
//int main()
//{
//	printf("%s\n", "zhangsan");
//	printf("%e\n", 123.456);
//	printf("%x\n", 96);
//	printf("%%\n");
//	printf("%3d\n", 12345);
//	printf("%-5d\n", 123);
//	printf("%+d\n", 12);
//	printf("%.2f\n", 123.456);
//	printf("%6.2f\n", 12.34);
//	printf("%*.*f\n", 6, 2, 0.5);
//	printf("%.4s\n", "hello");
//
//	return 0;
//}

//scanf
//int main()
//{
//	int a;
//	scanf("%d",&a);
//	printf("%d\n", a);
//	int b;
//	float c, d;
//	scanf("%d%d%f%f", &a, &b, &c, &d);
//	printf("%d %d %f %f\n", a, b, c, d);
//	return 0;
//}
//int main()
//{
//	int a;
//	float b;
//	scanf("%d%f", &a, &b);
//	printf("%d %f\n", a, b);
//	return 0;
//}
//int main()
//{
//	int a, b;
//	float c;
//	int ret = scanf("%d%d%f", &a, &b, &c);
//	printf("%d %d %f %d\n", a, b, c, ret);
//	return 0;
//}
//int main()
//{
//	char a;
//	scanf(" %c", &a);
//	printf("%c\n", a);
//	scanf("%c", &a);
//	printf("%c\n", a);
//}
//int main()
//{
//	char a[10] = { 0 };
//	scanf("%5s", a);
//	printf("%s\n", a);
//}
//int main()
//{
//	int a, b, c;
//	scanf("%d%*c%d%*c%d", &a, &b, &c);
//	printf("%d %d %d\n", a, b, c);
//}
//int main()
//{
//	printf("%x\n", 96);
//}

//第三章
//if语句
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	if (n % 2 == 0) printf("偶数\n");
//	return 0;
//}
//else语句
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	if (n % 2 == 0) printf("偶数\n");
//	else printf("奇数\n");
//	return 0;
//}
//int main()
//{
//	int age;
//	scanf("%d", &age);
//	if (age >= 18) printf("成年\n");
//	else printf("未成年\n");
//	return 0;
//}
//多条语句
//int main()
//{
//	int age;
//	scanf("%d", &age);
//	if (age >= 18)
//	{
//		printf("成年\n");
//		printf("可以谈恋爱\n");
//	}
//	else printf("未成年\n");
//	return 0;
//}
//嵌套语句
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	if (n == 0) printf("0\n");
//	else if (n > 0) printf(">0\n");
//	else printf("<0\n");
//	return 0;
//}
//int main()
//{
//	int age;
//	scanf("%d", &age);
//	if (age < 18) printf("少年\n");
//	else if (age < 44) printf("青年\n");
//	else if (age < 59) printf("中老年\n");
//	else if (age < 89) printf("老年\n");
//	else printf("老寿星\n");
//	return 0;
//}
//悬空if
//关系运算符
//int main()
//{
//	int a = 0;
//	int b = 1;
//	int c = (a > b);
//	printf("%d\n", c);
//}
//三目运算符
//int main()
//{
//	int a = 1;
//	int b = 2;
//	int m = (a > b) ? a : b;
//	int n=0;
//	(a > b) ? n=a : n=b; //运行不了
//	printf("%d\n", n);
//	printf("%d\n", m);
//	return 0;
//}
//逻辑运算符
//int main()
//{
//	printf("%d\n", !0);
//	printf("%d\n", 1 && 2);
//	printf("%d\n", 0 && 7);
//	printf("%d\n", 1 || 0);
//	printf("%d\n", 0 || 0);
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	if ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)) printf("闰年\n");
//}
//短路
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	switch (n % 3)
//	{
//	case 0:printf("0\n");break;
//	case 1:printf("1\n");break;
//	case 2:printf("2\n");break;
//	}
//}
//while循环
//int main()
//{
//	if (1) printf("hehe\n");
//}
//int main()
//{
//	int n = 10;
//	while (n)
//	{
//		printf("%d\n", n);
//		n--;
//	}
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	while (n)
//	{
//		printf("%d\n", n % 10);
//		n /= 10;
//	}
//}
//for循环
//int main()
//{
//	int sum = 0;
//	for (int n = 0;n <= 100;n += 3)
//	{
//		sum += n;
//	}
//	printf("%d\n", sum);
//}
//do while
//int main()
//{
//	int n;
//	int i = 0;
//	scanf("%d", &n);
//	do
//	{
//		i++;
//		n /= 10;
//	} while (n);
//	printf("%d\n", i);
//}
//break
//continue
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5) continue;
//		printf("%d ", i);
//		i++;
//	}
//}
//for中的break,continue
//do while中的break,continue
//循环的嵌套
//int main()⭐
//{
//	int i = 0;
//	for (i = 100;i <= 200;i++)
//	{
//		int j = 0;
//		int flag = 1;
//		for (j = 2;j < i;j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1)
//			printf("%d ", i);
//	}
//}
//int main()
//{
//	int n = 100;
//	while (n <= 200)
//	{
//		int flag = 1;
//		for (int i = 2;i < n;i++)
//		{
//			if (n % i == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1) printf("%d ", n);
//		n++;
//	}
//}
//goto语句
//int main()
//{
//	printf("hehe\n");
//	goto next;
//	printf("hehe\n");
//next:
//	printf("haha\n");
//}
//int main() //死循环
//{
//next:
//	printf("haha\n");
//	printf("haha2\n");
//	goto next;
//	printf("hehe\n");
//}
//关机代码
//int main()
//{
//	char input[20] = { 0 };
//	system("shutdown -s -t 660");
//	printf("input:");
//	scanf("%s", input);
//	if (strcmp(input, "我是猪"))
//		system("shutdown -a");
//	
//}
//猜数字游戏
#include <stdlib.h>
#include <time.h>
//void game()
//{
//	int r = rand() % 100 + 1;
//	int guess;
//	int count = 5;
//	while (count)
//	{
//		printf("猜数字 ");
//		scanf("%d", &guess);
//		if (guess < r) printf("<\n");
//		else if (guess > r) printf(">\n");
//		else 
//		{
//			printf("=\n");break;
//		}
//		count--;
//	}
//	if (count == 0) printf("失败\n");
//}
//int main()
//{
//	srand((unsigned int)time(NULL));
	//int r = rand()%100+1;
	//printf("%d\n", r); //不同编译器生成的都是41
//	int input; //input写在do while前面
//	do {
//		printf("input: ");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 0:printf("退出游戏\n");break;
//		case 1:printf("游戏\n");game();break;
//		default:printf("输入错误\n");break;
//		}
//	} while (input);
//}

//数组:元素个数不能为0
//一维数组创建,初始化
//int main()
//{
//	char a[10] = { 0 }; //数组类型为int [10]
//	scanf("%s", a);
//	printf("%s\n", a);
//	printf("%zd\n", sizeof(char[10]));
//	printf("%zd\n", sizeof(a));
//	printf("%c\n", a[1]);
//}
//int main()
//{
//	int a[20] = { 0 };
//	for (int i = 0;i < 10;i++)
//	{
//		scanf("%d", &a[i]);
//	}
//	for (int i = 0;i < 10;i++)
//	{
//		printf("%d ", a[i]);
//	}
//}
//int main()
//{
//	int a[10] = { 1,2,3,4,5,6,7 };
//	for (int i = 0;i < 7;i++)
//		printf("%p\n", &a[i]);
//	printf("%zd\n", sizeof(a) / sizeof(a[0]));
//}

//二维数组
//把一维数组做元素
//int main()
//{
//	int a[][5] = { {0,0,0,0,0},{1},{2,2},{3,3,3},{4,4,4,4} };
//
//	for (int i = 0;i < 5;i++)
//	{
//		for (int j = 0;j < 5;j++)
//			printf("%d ", a[i][j]);
//		printf("\n");
//	}
//	for (int i = 0;i < 5;i++)
//	{
//		for (int j = 0;j < 5;j++)
//			printf("%p\n", &a[i][j]);
//		printf("\n");
//	}
//	printf("%zd\n", sizeof(a[0]));
//}
//变长数组
//int main()
//{
//	int n;
//	char a[n];
//}
//练习
#include <Windows.h>
//int main()
//{
//	char a[] = "welcome to bit";
//	char b[] = "##############";
//	int left = 0;
//	int right = strlen(a) - 1;
//	//printf("%zd\n", sizeof(a));
//	printf("%s\n", a);
//	while (left < right)
//	{
//		Sleep(1000);
//		b[left] = a[left];
//		b[right] = a[right];
//		left++;
//		right--;
//		printf("%s\n", b);
//	}
//}
//二分查找
//int main()
//{
//	int a[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int left = 0;
//	int right = sizeof(a) / 4;
//	int key = 7;
//	int mid;
//	int find = 0;
//	while (left <= right)
//	{
//		mid = (left + right) / 2;
//		if (a[mid] == key)
//		{
//			find = 1;
//			break;
//		}
//		else if (a[mid] > key) right = mid - 1;
//		else left = mid + 1;
//	}
//	if (find == 1) printf("%d\n", mid);
//	else printf("找不到\n");
//}

//函数
//1、库函数
//2、自定义函数
#include <math.h>
//int main()
//{
//	printf("%lf\n", sqrt(16));
//}
//int add(int a, int b)
//{
//	return a + b;
//}
//int main()
//{
//	int a = 2, b = 3;
//	int ret = add(a, b);
//	printf("%d\n", ret);
//}
//实参:函数调用时
//形参:函数定义时
//void print()
//{
//	printf("hehe\n");
//	return;
//}
//int main()
//{
//	print();
//}
//int test()
//{
//	printf("hehe\n");
//	int a = 3 + 5;
//}
//int main()
//{
//	printf("%d\n", test()); //返回随机值
//}
//void setarr(int a[],int n)
//{
//	for (int i = 0;i < n;i++)
//	{
//		a[i] = -1;
//	}
//}
//数组传参
//int main()
//{
//	int a[10] = { 1,2,3,4,5,6,7,8,8,9 };
//	setarr(a,10); //数组传参写数组名即可
//	for (int i = 0;i < 10;i++)
//	{
//		printf("%d ", a[i]);
//	}
//}
//嵌套调用:函数相互调用
//int isyear(int y, int m)
//{
//	return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
//}
//int dayofyear(int y, int m)
//{
//	int day[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//	int d = day[m];
//	if (isyear(y,m) && m == 2)
//		d = d + 1;
//	return d;
//}
//int main()
//{
//	int y, m;
//	scanf("%d%d", &y, &m);
//	printf("%d\n",dayofyear(y, m));
//}
//链式访问:将一个函数的返回值作为另一个函数的参数
//int main()
//{
//	printf("%d", printf("%d", printf("%d", 43)));
//}
//函数声明和定义
#include "add.h"
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	printf("%d\n", add(a, b));
//}
//static
//作用域
//生命周期
//void test()
//{
//	static int a = 0;
//	a++;
//	printf("%d ", a);
//}
//int main()
//{
//	extern int g; //外部符号
//	printf("%d\n", g);
//	for (int i = 0;i < 5;i++)
//		test();
//	//printf("%d ", a); 作用于不变
//}
//extern int mul(int a, int b);
#include "add.h"
//int main()
//{
//	int a = 2;
//	int b = 3;
//	printf("%d\n", mul(a, b));
//}
//调试
//int main()
//{
//	char a[10]="hehe";
//	printf("%s\n", a);
//}
//int main()
//{
//	int a[20] = { 0 };
//	for (int i = 0;i < 20;i++)
//	{
//		a[i] = 10 - i;
//		printf("%d ", a[i]);
//	}
//
//}
//监视和内存观察
//int main()
//{
//	int arr[10] = { 10 };
//	int num = 100;
//	char c = 'w';
//	for (int i = 0;i < 10;i++)
//	{
//		arr[i] = i;
//	}
//}
//调试举例
//int main()
//{
//	int i = 0;
//	int arr[10] = { 0 };
//	for (int i = 0;i <= 12;i++)
//	{
//		arr[i] = 0;
//		printf("hehe\n");
//	}
//	printf("%d\n", 0xd4 - 0xcc);
//}
//void test(int a[][2])
//{
//
//}
//int main()
//{
//	int a[10][2] = {1,2,3,4,5};
//	test(a);
//}


//函数递归
//int main()
//{
//	printf("hehe\n");
//	main();
//}

//int fact(int n) {
//	if (n == 1) return n;
//	else return n * fact(n - 1);
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	int ret=fact(n);
//	printf("%d\n", ret);
//}
//void print(int n)
//{
//	if (n > 9) print(n / 10);
//	printf("%d ", n % 10);
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	print(n);
//}

//递归和迭代
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	int ret = 1;
//	for (int i = 1;i <= n;i++)
//		ret = ret * i;
//	printf("%d\n", ret);
//}
//int fib(int n)
//{
//	if (n <= 2) return 1;
//	else return fib(n - 1) + fib(n - 2);
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	printf("%d\n",fib(n));
//}
//int fib(int n) {
//	int a = 1;int b = 1;int c = 1;
//	while (n > 2)
//	{
//		c = a + b;
//		a = b;
//		b = c;
//		n--;
//	}
//	return c;
//
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	printf("%d\n", fib(n));
//}


//操作符
//int main()
//{
//	printf("%d\n", 013);
//}
//进制
//原码,反码,补码
//第13节课讲了如何建立变长数组
//移位操作符
//int main()
//{
//	int n = 2;
//	printf("%d\n", n >>2);
//	printf("%d\n", n); //n不变
//}
//位操作符
//int main()
//{
//	int a = -5;
//	int b = 13;
//	printf("%d\n", a & b);
//	printf("%d\n", a | b);
//	printf("%d\n", ~a);
//	printf("%d\n", a ^ b);
//	printf("%d\n", a && b);
//	printf("%d\n", a || b);
//}
//int main()
//{
//	int a = 2;
//	int b = 4;
//	a = a ^ b;
//	b = a ^ b;
//	a = a ^ b;
//	printf("%d %d\n", a, b);
//}
//例题
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	int count = 0;
//	while (n)
//	{
//		if (n % 2 != 0) count++;
//		n = n / 2;
//	}
//	printf("%d\n", count);
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	int count = 0;
//	for (int i = 0;i < 32;i++)
//	{
//		if ((n >> i) & 1 == 1) count++;
//	}
//	printf("%d\n", count);
//}
//int main()
//{
//	int num = 8;
//	int count = 0;
//	while (num)
//	{
//		count++;
//		num = num & (num - 1);
//	}
//	printf("%d\n", count);
//}
//int main()
//{
//	int a = 13;
//	a = a | (1 << 4);
//	printf("%d\n", a);
//	a = a & (1 << 4);
//	printf("%d\n", a);
//}
//单目操作符
//逗号表达式
//int main()
//{
//	int a = 1;
//	int b = 2;
//	printf("%d\n", (a = b + 10, b = a + 1, a=a+1));
//}
//下标引用操作符
//函数调用操作符
//结构成员访问操作符
//struct stu {
//	char name[15];
//	int age;
//};
//int main()
//{
//	struct stu s1 = { .age = 23,.name = "hehe" };
//	printf("%d %s\n", s1.age, s1.name);
//}
//struct B {
//	char c;
//	int a;
//};
//struct stu {
//	char name[15];
//	int age;
//	struct B bb;
//};
//int main() //可以运行
//{
//	
//	struct stu s1 = {.age = 23,.name = "hehe",.bb = {'c',23}};
//    struct stu s1={.age=23,.name="hehe",.bb.c='c',.bb.a=22};
//	printf("%d %s %c %d\n", s1.age, s1.name, s1.bb.c, s1.bb.a);
//}
//int main() //报错,应输入表达式???
//{
//	struct stu s1;
//	s1 = { .age = 23,.name = "hehe",.bb = {'c',23} };
//	printf("%d %s %c %d\n", s1.age, s1.name, s1.bb.c, s1.bb.a);
//}
//struct point {
//	int x;
//	int y;
//};
//struct stu {
//	int data;
//	struct point p;
//	struct stu* next;
//};
//int main()
//{
//	struct stu s1 = { 23,2,3,NULL };
//	printf("%d %d %d %p\n", s1.data, s1.p.x, s1.p.y, s1.next);
//}

//结构体指针
//struct stu {
//	int data;
//	char name[15];
//};
//int main()
//{
//	struct stu p1 = { 23,"hehe" };
//	struct stu* p = &p1;
//	p->data = 23;
//	p->name = "hehe"; //表达式必须是可修改的左值???
//	printf("%d %s\n", p->data, p->name);
//}

//操作符的属性:优先级、结合性
//当优先级相同,考虑结合性,左结合,右结合

//表达式求值
//整型提升
//int main()
//{
//	char a = 5;
//	char b = 126;
//	char c = a + b;
//	printf("%d\n", c);
//	printf("%c\n", c);
//}
//算术转换
//表达式例子
//int main()
//{
//	int i = 1;
//	int ret = (++i) + (++i) + (++i);
//	printf("%d\n", ret);
//	printf("%d\n", i);
//}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值