【启蒙】C笔记之初学阶段(上篇)

 

(全是干货,如果你是C语言的初学者,搞懂如下推荐的题目,你就已经比你的同学走在前面很多了!)-------(后期补充)

(如果有些代码你看不懂,请将你的问题写在评论区,我一定会回复你的!)

 

这是我初学的时候觉得一些比较难的题目,我把这些题目推荐给大家,免去了做一些无用的题,还浪费了一些时间,无脑题少做,虽然很爽,但是对提高没啥好处。。。

 

比如说,,这题:https://www.luogu.com.cn/problem/P1000

榜一大佬的答案就是了,,,,不过嘞。。。。。。如果你的思路是榜二的思路,强烈推荐写一波(得费点神咯,hh~)

 

 做题流程:

做题前审题一定要仔细,观察有哪一些限制条件,将关键词记下。(限制条件一定要找完整,要不然到后面会浪费很多时间)。
一定要带草稿纸,在草稿纸中把你心里的想法用简单的C语言表达出来,
写完之后对照限制条件顺着你自己的思路走一下,限制条件如果有点多的话,多自己用几个例子
去代替,碰到错误纠正过来。
最后照着纸的内容快速打码。
 
思路大家都知道,最主要是调试代码的能力,我们平时刷题,练的就是调试代码的能力,如果你能很快的调试出代码的问题,那么你就能多争取一些时间去刷下一题,千万不要遇到困难就退缩,记得当时刷题的时候,一个题目要改几天,万匹草泥马奔腾而过,,,,时不时口吐芬芳。。。。。
 

小提示:

①有时候思路是对的,感觉写的算正确,但是就是得不到满分。那可能题目再卡你的点,把范围开大一点,对于初学者来说,想开多大就开多大。开在主函数里面数据大了就会爆栈,所以开数组的话推荐开到主函数外面去。
 
②有循环这种语法就一定要好好用到,因为电脑是死的,不会偷懒,只会干傻逼事,所以我们有时候就没必要帮他想,累了自己。
初学者一定要把思路转换过来,用电脑的思维去想问题,机器可没你那么聪明伶俐、冰雪聪明、秀外慧中、聪明才智、颖悟绝伦..........聪明....绝顶。
(兄弟保重,我先剃为敬!)

 

 
例:
 
对于此题,我刚开始想,应该用什么数学公式,把双休日分开算,最后七算八算经过麻烦的死,一看答案,我的妈呀!!!真简单,就让电脑循环算,给他一个限制条件,给他一个终止命令,此题结束!  
审题一定要仔细,弄清楚题目究竟要让你干什么。别被题目迷惑了。
看完了一点提示,先做一下这题吧:https://www.luogu.com.cn/problem/P1424
 
 

题目推荐

在初学的时候,我就被这题绕住了,当时在网上搜到极简代码,用指针写,当时一脸懵逼,到了后面刷的题多了一点,才知道这题其实很简单,所以我把这题推荐给大家。

http://www.51cpc.com/problem/1059

附上个人题解:

 https://www.cnblogs.com/Attacking-vincent/p/12720837.html

这题是有关于acill码的题目,当时对这个东西有点陌生。

这里有个小技巧,(适用于不记得ACILL码,而且没网,,大多是在考试的时候),你可以这样:

#include<stdio.h>
int main(){
    char ch='a';
    printf("%d\n",ch);
    return 0;
} 
关注点个赞吧!

 

https://www.luogu.com.cn/problem/P1914

 这题就是利用了取模思想,有了取模,你就可以将一条直线的关联信息变成环状。

#include<stdio.h>
#include<string.h>
int a[1000];
int main(){
    int n,i;
    char a[1000];
    scanf("%d%s",&n,a);
    for(i=0;a[i]!='\0';i++){
        printf("%c",(a[i]-'a'+n)%26+'a');
    }
    return 0;
}

 

Tips:

①遇到辨别单词个数之类的时候用空格区分。(如果学了C++就不用写了)

例题好好做哦,不会的知识点可留言哦,我肯定及时回答。

附上题目http://www.51cpc.com/problem/1061

附上个人题解https://www.cnblogs.com/Attacking-vincent/p/12721966.html

 ②只有奇数才会是质数。

③要懂得运用已有的数据,不要将数据复杂化,能减少变量就减少变量!

 
 

题目解题方法

冒泡排序法
 
 
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。(摘自百度百科)
 
 
选择排序法
 
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。(摘自百度百科)
个人感觉就是冒泡排序的升级版。
 
有这种小数点的定要注意精度,防止精度丢失。
 

递归函数相关概念

对于递归函数,就是调用自己设计的函数,相当于循环函数;
在这之中分为有参和无参
 

递归例子:

 
(如过你做过此题,请你再做一遍,真的很经典!)
累计记得的单词数
 
看完这个,我们再看看另一个题目吧
 
 
做递归题,我们不能太着急,先在草稿纸中写好累积的算法,然后再调用函数。为什么会反着输出呢,是因为,要知道第一个摘下的桃子数量,就得先过第九天的程序,反向得到答案,运用电脑的特性,死算。
 
 

一种新的数字倒序输出法!!

这个想法当初被老师夸奖了一波,我现在推荐给大家,大家要好好用哦!!
 
 
END?????
看到这里感觉怎么样???
 
什么???太简单了,同学都会。
那就看看下篇中的我学习过程中遇到当时觉得比较好的代码吧!
 
如果你这篇不懂,记得评论区留言哦!
我会加以修改,说的更详细,谢谢你关注!
 
【启蒙】C笔记之初学阶段(下篇)https://www.cnblogs.com/Attacking-vincent/p/12721609.html
 
 
给个赞再走呗!
posted @ 2020-04-17 18:40  Vincent&  阅读(522)  评论(0编辑  收藏  举报