零基础进阶算法工程师之路:《算法笔记》学习: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++快速回顾