每个c语言程序写完后 都要按照,cpp学习(二)C语言复习

接下来复习一下C语言部分,毕竟C++与C语言本自同根生,并且在汇编层面C与C++可以说完全相同。假如你没有C语言基础的话,可以先暂停去学习一下C语言,C语言可以看“C语言之父”谭浩强的《C语言程序设计》或者观看学堂在线的免费公开课,在此推荐清华大学的c++课程:http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043X_2015_T2+sp/courseware/a0f3bf5a4c044dfaaad6814821533699/

最起码要先了解C基础才能进行接下来的学习。

基础包括:(想到哪写哪,有点乱,但是知道这些以后就可以开始动手了)

0.C基本数据类型

1.顺序结构 、选择结构、循环结构

2.程序都要从main()入口, 然后从最上面顺序往下读。(当然,这种说法其实是错误的,有兴趣的话我会在以后写明。)

3.函数的定义与使用

4.编译预处理不是C语言的一部分,不占运行时间

5.在函数中不可以再定义函数

6.每个C语言程序写完后,都是先编译,后链接,最后运行。

7.标识符合法的要求是由字母,数字,下划线组成,并且由下划线或字母开头。

8.C语言只有八、十、十六进制,没有二进制。

9.复合的赋值表达式

a.自增自减语法,以及符号在前与在后的区别

b.基本的位运算与逻辑运算、算术运算

c.指针部分最好理解,如果实在不理解,在以后的博客中,我会讲解一部分汇编知识,以便d.大家深入理解指针。

e.文件操作如果不理解也没关系

//应该还有很多没想到的知识点…不过,在项目中遇到了再通过注释的方式详解吧,这样更//好理解一点。

好,在此假设屏幕前的你已经有了最基本的C语言知识。

我们来动手写两个小项目,进一步熟悉C语言的语法以及VS这款IDE。

项目一:打印菱形。(可以说是灰常简单了)

项目二:写一个C语言版的贪食蛇。(初学者看到,可能觉得自己肯定写不出来,其实只要具备一定的C语言基础,都可以很简单的写出来,只不过苦于无人指导,遇到一个棘手的问题可能就真的过不了这个坎了,在此我会尽可能详细的讲解可能遇到的问题,如果仍无法解决的话,欢迎请求远程协助:QQ:1149375463,一些知识细节,遇到后会在项目注释里尽可能的写详细。)

在此再次推荐VS,因为VS拥有良好的调试功能,包括对于变量在内存中的观察,优秀的断点,以及可以反汇编,在以后与bug做斗争的过程中,会让你事半功倍。

首先与第一篇一样,新建工程,新建cpp文件:

然后编码:

#include //C标准输入输出库

#include//Windows库

int main() //程序主函数,当main函数执行结束后,进程退出

{

int line = 0; //上半部分层数,此后所说的层数都是之上半部分层数

char draw; //要输入什么字符组成的菱形

scanf("%c", &draw);

printf("请输入你想打印的行数:"); //printf()函数,属于stdio.h

scanf("%d", &line); //scanf()函数,属于stdio.h

/*

0001000 对于这个四层菱形,用0代替空格,用1代表要打印的字符

0011100 先打印上四层,再打印下三层

0111110 可以发现:左侧空格的数量 = 要打印的总层数 - 当前是第几层

1111111 然后打印下三层,采用相同的方式

0111110 左侧空格数量 = (1,2,3),即 1 开始,到层数 -1

0011100 OK,找到规律后就可以开始编码啦

0001000

*/

//打印上line层

for (int i = 0; i < line; i++) {

for (int n = 0; n < line - 1 - i; n++) {

printf(" ");

}

for (int j = 0; j < 2 * i + 1; j++) {

printf("%c",draw);

}

printf("\n");

}

//打印下line-1层

for (int i = 0; i < line - 1; i++){

for (int n = 0; n < i + 1; n++){

printf(" ");

}

for (int j = 0; j < 2 * (line - 1 - i) - 1; j++){

printf("%c",draw);

}

printf("\n");

}

system("pause"); //system()函数,属于windows.h,便于观察结果

return 0; //执行完return语句时退出进程

}

点击本地Windows调试器或者快捷键或者快捷键ctrl+F5

如果你使用了和我一样的IDE,一定会遇到:

这是因为VS为了避免开发者疏忽导致程序在使用某些函数时产生溢出,引发漏洞或程序崩溃,所以基于原标准库开发了一套安全函数库,在VS中使用安全函数可以在一定程度上使此程序更加健壮。但在学习过程中通常是不必要的。因此我们:

点开项目属性:

找到C/C++目录,将SDL检查置为否

oK,接下来运行便可看到,用你输入的图形打印了输入行数的菱形。

接下来我们将程序的功能部分写成一个函数,让代码具有更好的可读性,得到如下代码:

#include //C标准输入输出库

#include//Windows库

void PrinDia(char , int ); //PrinDia函数的声明

int main() //程序主函数,当main函数执行结束后,进程退出

{

char draw;

int line;

printf("请输入你想打印的图形:");

scanf("%c", &draw);

printf("请输入你想打印的行数:"); //printf()函数,属于stdio.h

scanf("%d", &line); //scanf()函数,属于stdio.h

PrinDia(draw, line);

system("pause"); //system()函数,属于windows.h,便于观察结果

return 0; //执行完return语句时退出进程

}

void PrinDia(char draw,int line) {

// line //上半部分层数,此后所说的层数都是之上半部分层数

// draw; //要输入什么字符组成的菱形

/*

0001000 对于这个四层菱形,用0代替空格,用1代表要打印的字符

0011100 先打印上四层,再打印下三层

0111110 可以发现:左侧空格的数量 = 要打印的总层数 - 当前是第几层

1111111 然后打印下三层,采用相同的方式

0111110 左侧空格数量 = (1,2,3),即 1 开始,到层数 -1

0011100 OK,找到规律后就可以开始编码啦

0001000

*/

//打印上line层

for (int i = 0; i < line; i++) {

for (int n = 0; n < line - 1 - i; n++) {

printf(" ");

}

for (int j = 0; j < 2 * i + 1; j++) {

printf("%c", draw);

}

printf("\n");

}

//打印下line-1层

for (int i = 0; i < line - 1; i++) {

for (int n = 0; n < i + 1; n++) {

printf(" ");

}

for (int j = 0; j < 2 * (line - 1 - i) - 1; j++) {

printf("%c", draw);

}

printf("\n");

}

}

再次运行依然可以看到结果。

OK,接下来便是另一个项目,C语言版的贪食蛇。在此之前需要学习一下如何使用VS调试程序,VS自带了很强大的调试器,可以在以后的学习中很好的处理自己的bug。

好啦,建议屏幕前的你再好好复习一下C语言吧,一定一定要复习好C语言,或者观看清华大学课程的前几章基础,熟练一下语法......莫贪快欧~

下一篇详解如何使用VS调试程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值