零基础进阶算法工程师之路:《算法笔记》学习:C/C++快速回顾

Posted 神佑我调参侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础进阶算法工程师之路:《算法笔记》学习:C/C++快速回顾相关的知识,希望对你有一定的参考价值。

前言

偶然间看到了一个算法从事者分享的文章,让我也对算法从事有了很大的兴趣,接着考研,我可以将计算机的基础好好的学一遍,因为自己打算在3月考研全面铺开,于是我有2个月的时间去学习算法,那么现在开始把

C/C++快速回顾

因为刷题的话,自己打算使用上述两个语言,所以我们这里先来快速过一遍

第一个程序

#include<stdio.h>

int main()

	int a, b;
	scanf("%d%d", &a, &b);
	printf("%d", a + b);
	return 0;

字符

#include<stdio.h>

int main()

	char c1 = 'z', c2 = 'j', c3 = 117;
	printf("%c%c%c", c1, c2, c3);
	return 0;

》》zju

字符串

#include<stdio.h>

int main()

	char str1[25] = "wo ai de ren bu ai wo!";
	printf("%s\\n", str1);
	return 0;

强制类型转化

#include<stdio.h>

int main()

	double r = 12.56;
	int a = 3, b = 5;
	printf("%d\\n", int(r));
	printf("%d\\n", a / b);
	printf("%.1f\\n", double(a) / double(b));
	return 0;

符号常量

#include<stdio.h>

#define pi 3.14
//const double pi = 3.14

int main()

	double r = 3;
	printf("%f", pi * r * r);
	return 0;

scanf字符数组

#include<stdio.h>

int main()

	char str1[10];
	scanf("%s", &str1);
	printf("%s", str1);
	return 0;

》》abcd efg
》》abcd

scanf空格

#include<stdio.h>

int main()

	int a;
	char c, str1[10];
	scanf("%d%c%s", &a, &c, str1);
	printf("a=%d,c=%c,str=%s", a, c, str1);
	return 0;

》》10 s df
》》a=10,c= ,str=s

printf %md

#include<stdio.h>

int main()

	int a = 123, b = 1234567;
	printf("%5d\\n", a);
	printf("%5d", b);
	return 0;

>>  123
>>1234567

printf %0md

#include<stdio.h>

int main()

	int a = 123, b = 1234567;
	printf("%05d\\n", a);
	printf("%05d", b);
	return 0;

>>00123
>>1234567

getchar,putchar

#include<stdio.h>

int main()

	char c1, c2, c3;
	c1 = getchar();
	getchar();
	c2 = getchar();
	c3 = getchar();
	putchar(c1);
	putchar(c2);
	putchar(c3);
	return 0;

取绝对值

#include<stdio.h>
#include<math.h>

int main()

	double ab = -12.56;
	printf("%.2f", fabs(ab));
	return 0;

向下取整和向上取整

#include<stdio.h>
#include<math.h>

int main()

	double db1 = -5.2, db2 = 5.2;
	printf("%.0f %.0f\\n", floor(db1), floor(db2));
	printf("%.0f %.0f", ceil(db1), ceil(db2));
	return 0;

一维数组

#include<stdio.h>
#include<math.h>

int main()

	int a[10] =  5,3,2,4,6,8,4 ;
	for (int i = 0;i < 10;i++) 
		printf("a[%d] = %d\\n", i, a[i]);
	
	return 0;

》》
a[0] = 5
a[1] = 3
a[2] = 2
a[3] = 4
a[4] = 6
a[5] = 8
a[6] = 4
a[7] = 0
a[8] = 0
a[9] = 0

冒泡排序

#include<stdio.h>
#include<math.h>

int main()

	int a[10] = 3,1,4,5,2;
	for (int i = 1;i <= 4;i++) 
		for (int j = 0;j < 5 - i;j++) 
			if (a[j] > a[j + 1]) 
				int temp = a[j];
				a[j] = a[j+1];
				a[j + 1] = temp;
			
		
	
	for (int i = 0;i < 5;i++) 
		printf("%d", a[i]);
	
	return 0;

二维数组

#include<stdio.h>
#include<math.h>

int main()

	int a[3][3];
	int b[3][3];
	for (int i = 0;i < 3;i++) 
		for (int j = 0;j < 3;j++) 
			scanf("%d", &a[i][j]);
		
	
	for (int i = 0;i < 3;i++) 
		for (int j = 0;j < 3;j++) 
			scanf("%d", &b[i][j]);
		
	
	int c[3][3];
	for (int i = 0;i < 3;i++) 
		for (int j = 0;j < 3;j++) 
			c[i][j] = a[i][j] + b[i][j];
		
	
	for (int i = 0;i < 3;i++) 
		for (int j = 0;j < 3;j++) 
			printf("%d\\n", c[i][j]);
		
	
	return 0;

memset

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

int main()

	int a[5];
	memset(a, 0, sizeof(a));
	for (int i = 0;i < 5;i++) 
		printf("%d", a[i]);
	
	return 0;
00000

字符数组

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

int main()

	char c[10] = "hello!";
	
	printf("%s", c);
	return 0;

strlen()

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

int main()

	char c1[10];
	gets_s(c1);
	int len = strlen(c1);
	printf("%d", len);
	return 0;

这里注意用gets的话会报错,所以这里要使用gets_s

strcpy_s

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

int main()

	char str1[50], str2[50];
	gets_s(str1);
	gets_s(str2);
	strcpy_s(str1, str2);
	puts(str1);
	return 0;

strcat_s

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

int main()

	char str1[50], str2[50];
	gets_s(str1);
	gets_s(str2);
	strcat_s(str1, str2);
	puts(str1);
	return 0;

数组做参数

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

void change(int a[], int b[][5]) 
	a[0] = 1;
	a[1] = 3;
	a[2] = 5;
	b[0][0] = 1;


int main()

	int a[3] =  0 ;
	int b[5][5] =  0 ;
	change(a, b);
	for (int i = 0;i < 3;i++) 
		printf("%d\\n", a[i]);
	
	return 0;


指针

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

int main()

	int a = 0;
	int* p = &a;
	a = 233;
	printf("%d", *p);
	return 0;

指针与数组

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

int main()

	int a[10] =  1 ;
	int* p = a;
	printf("%d", *p);
	return 0;

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

int main()

	int a[10];
	for (int i = 0;i < 10;i++) 
		scanf("%d", a + i);
	
	for (int i = 0;i < 10;i++) 
		printf("%d", *(a + i));
	
	return 0;

注意这里面的直接对数组名称操作的是用的地址,然后要取值的

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

int main()

	int a[10] =  1,2,3,4,5,6,7,8,9,10 ;
	for (int *p = a;p < a+10;p++) 
		printf("%d", *p);
	
	return 0;

经典例子:

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

void swap(int* a, int* b) 
	int temp = *a;
	*a = *b;
	*b = temp;


int main()

	int a = 1, b = 2;
	int* p1 = &a;
	int* p2 = &b;
	swap(p1,p2);
	printf以上是关于零基础进阶算法工程师之路:《算法笔记》学习:C/C++快速回顾的主要内容,如果未能解决你的问题,请参考以下文章

零基础进阶算法工程师之路:《算法笔记》学习:C/C++快速回顾

零基础进阶算法工程师之路:《算法笔记》学习:C/C++快速回顾

C语言数字图像处理进阶---1 Photoshop图层算法

C语言数字图像处理进阶---1 Photoshop图层算法

C语言数字图像处理进阶---1.1 Photoshop图层算法

零基础Python学习路线,小白的进阶之路!