在个人教学的过程当中,发现不少同窗都以为编程是一件很难的事情,甚至有同窗说我使出了洪荒之力,上学期的《c语言》期末才考了60分,并且听不少学长说《数据结构》这门课平均经过率不到50%,因而乎很多同窗都选择了迎难而退,有了换专业的想法。那么事实真的是这样吗?编程真的很难吗?html
确实编程很难,你要想成为一名优秀的开发工程师确实须要具有不少条件,如你的计算机专业基础知识(算法与数据结构,操做系统,编译原理,数据库原理,计算机网络等)、英语、分析问题解决问题的能力等,这些都不是一朝一夕可以练成的,须要长时间的学习和领悟。可是若是你的目标不是那么高,而只是为了学习c语言或数据结构的基础知识,那么事情就没有你想的那么难。既然如此,那为何还有那么多的学生以为编程很难呢?缘由在于没有掌握较好的学习方法。算法
今天就和你们一块儿来聊一聊编程初学者应该须要注意的一些地方。数据库
1 代码格式编程
你们小时候都写过做文,若是你的做文字迹潦草,卷面邋遢,那么即便你的做文内容再丰富,逻辑性再强,你的得分也会很低。由于老师第一眼看了做文之后,就不想再继续看下去,因此得分低就是意料之中的事情。数组
写代码就和写做文同样,先无论你的代码写的多好,逻辑性多强,你要作的第一件事就是代码格式优美,该缩进的就缩进,该换行的就换行的。网络
代码1数据结构
代码2ide
以上两个代码你更愿意看哪个?代码1毫无格式可言,没有任何的缩进,也没有任何的换行,试想若是是你去读这样的代码,你什么感觉。函数
因此写代码是给人读的,首先要作的一点就是优良的格式,我相信这是每一位同窗都应该作到的。学习
2 前后顺序
作什么事情都有前后顺序,先作什么,再作什么,最后作什么。这里面都是有前后关系的,不是想到什么就作什么。
对于C语言编程来讲,咱们首先要写的就是程序的模板。
#include <stdio.h>
int main(){
// 你的代码
return 0;
}
C语言是一门面向过程的语言,也就是说一个C语言的程序是由一个个独立的函数构成,在这些函数中有一个很是特别的函数,那就是main函数。为何特殊呢?由于它是整个程序的入口。
有了上面的基础理论以后,咱们知道写C语言程序其实就是写一个个的函数。
因此,函数是如何定义的,有哪些组成部分,我相信这是每一位同窗都可以作到的。
3 不要一口气吃成胖子
作什么事情都不能着急,要一步步来,心急是吃不了热豆腐的,一样对于编程也不例外。
一个程序的代码越多,其隐含bug的概率也就越大,相应的你解决bug的时间也就越长。我相信大部分同窗应该都认同上面这句话,因此若是一个程序只有打印“hello,world”这个功能,那么这个程序怎么也不会出现问题。
上面这句话其实告诉了咱们一个编程的基本道理:全部的大的程序都不是一鼓作气的,而是一点点累积起来的。即只有在确保上一个功能正确的前提下,我才会增长一个新的功能。
举个简单的例子说明一下:
输入5位学生的一组信息,包括学号、姓名、数学成绩、计算机成绩,求得每位同窗的平均分和总分,而后按照总分从高到低排序。
这是我给学生上课时布置的一道做业题,不少学生都实现了功能,但在实现的过程当中遇到了不少的问题,接下来我便介绍一下,若是是我,我该怎么去实现。
步骤1:写模板。
#include <stdio.h>
int main(){
return 0;
}
步骤2:分析题目,肯定有几个任务。
经过对题目的分析,咱们发现主要有3个任务:
1)输入5个学生的信息;
2)计算5位学生的平均分;
3)按照总分红绩对5位学生进行排序。
这是很是很是关键的一步,你得很是了解你要作的事情有哪些?将一个大的任务分解成多个小的任务,而后再去解决每个小的任务。当全部的小的任务都解决了,那么大任务也就天然而然的解决了,这就是著名的“分治法”的思想。
有了上面的任务分解后,接下来咱们就首先解决第一个任务:“输入5个学生的信息”。
每个学生包含了学号、姓名、数学成绩和计算机成绩,该用什么结构来保存呢?你们以前学过C语言的知识应该都能很快想到,咱们应该使用结构体。
struct student{
int no;
char name[20];
float math_score;
floatcomputer_score;
};
输入5个学生的信息,以后保存在什么地方呢?咱们很快就能想到结构体。
struct student students[5];
最后即是处理如何输入的问题了,将用户输入的信息保存在上面的结构体数组里面。
有了上面的分析以后,咱们可以很快写出下面的代码。
#include <stdio.h>
struct student {
int no;
char name[20];
float math_score;
floatcomputer_score;
};
struct student students[5];
int main(){
int i = 0;
for(; i<2;i++){
scanf("%d,%s,%f,%f", &students[i].no, students[i].name,&students[i].math_score, &students[i].computer_score);
}
return 0;
}
可是这里面你们须要注意的一点是,个人代码虽然写完了,可是我并无验证它的正确性,因此还应该加上一些验证性代码。
#include <stdio.h>
struct student {
int no;
char name[20];
float math_score;
floatcomputer_score;
};
struct student students[5];
int main(){
// 实现任务1的代码
int i = 0;
for(; i<5;i++){
scanf("%d,%s,%f,%f", &students[i].no, students[i].name,&students[i].math_score, &students[i].computer_score);
}
// 为了验证任务1代码正确性而写的额外的代码
for(i = 0; i <5; i++){
printf("%d, %s, %f,%f", students[i].no, students[i].name,students[i].math_score, students[i].computer_score);
}
return 0;
}
只有在完成任务1的代码而且验证它的正确性以后,我才会开始第2个任务的代码编写。
以上就是给你们分析的什么叫编程的基本方法,只有在确认上一个任务彻底正确的前提下,才会开始新的任务。
总结
但愿上面介绍的3点可以对你的编程有所帮助,为从此写出更好的代码打下基础。
你在学习编程的过程当中,遇到哪些问题,欢迎在下面留言,后面会根据你们的留言状况,提供你们须要的编程知识。