刷洛谷/LintCode/牛客刷题学习心得(1)(c语言查漏补缺)

     之前觉得自己c语言跟着课上了一遍语法啥的都没问题了,觉得自己看了两节课就在这方面已经是中等水平了,这两天在学长的推荐下打开了各种刷题网站,我打开第一个网站(洛谷)的时候直奔提高组,当时心里在想我基础应该很好了不需要从头做,事实证明我错的很离谱,一点思路没有!!!!!!

   之后就有了从头查漏补缺的念头,十月底开始了我上大学第一波认认真真的复习,在过程中我发现自己知识体系的漏洞很多,每天都写了很多自己不会的内容作为笔记,这也是写博客的初衷。

  此篇博客仅限于学了很久有一点印象忘光了,帮你回忆回忆主要内容。主要是写给自己看。

各种循环语句的查漏补缺(重要)

1.goto语句无条件转移语句 
goto: if()

eg:

int sum=0;
int i=1;
loop:if(int i<=100)
{
    
    sum=sum+i;
    i++;
    goto loop;
}


2.do while 至少执行一次
while执行一次

例:数学家们曾提出一个著名的猜想——冰雹猜想。
对于任意一个自然数N,如果N是偶数,就把它变成N / 2;
如果N是奇数,就把它变成 3 * N+1。
按照这个法则运算下去,最终必然得1。
试问,该数通过几轮变换,会变成1呢?

答:

   int getAnswer(int num) {
        int a=0;
        while(num!=1){
        if(num%2==0){
            num/=2;
          a++;
        }
        else {
            num=3*num+1;
            a++;}
        
        }
        return a;
        // write your code here.
    }


3.for循环

eg:输出不被三整除的 数

for(n=10;n<=20;n++)
{
    if(n%3 == 0)
    {
        continue;
    }
}

  c语言一些易混淆概念:

 1. 同类数据元素的集合叫数组。

2.在头文件定义lxy这个变量等于10;以后数组就能用这个变量去定义长度。

#define lxy 10;
int xyy[lxy];

3.定义一位数组

int n=5;
int lxy[n];//错误的,n是变量


4.二位数组是按行排序的;


5.

int a[3][3]={{1},{2},{3}};
此数组中的元素值为{{1,0,0},{2,0,0},{3,0,0}};


6.字符数组如果没有赋值系统复位0值;

7.put函数是直接输出字符串数组;

put(c);//输出字符数组c


8.get函数是获取字符串数组,即在终端获取字符串数组

gets(c_1);


 9.strcat函数是合并字符串数组为一个数组 

strcat(c,c_1);


10.

 getchar();
 从输入端获取一个字符
putchar();
 输出一个字符


11.常用命名法

驼峰命名法
findMax
12.auto 自动变量

auto  int a=0;//知道就行


13.

static int c=3;//static为静态变量,即保持上一次运算的值,留在内存里
register//比static快,因为这个函数在寄存器里保存。


14.宏定义

#define Max(a,b) (a>b)?a:b
scanf("%d%d",&a,&b);
max=Max(a,b);

你可能感兴趣的:(c语言,开发语言,后端,c++)