筑基一层 —— 高质量C编程建议、详解猜数字游戏
创始人
2024-05-13 19:08:28
0

目录

一.修炼必备

二.高质量C编程

2.1 高质量C编程的思维导图(需要思维导图的加qq:972606225获取)

2.2 文件结构

2.3 程序的形式

2.4 命名规则 

三.猜数字游戏详解


一.修炼必备

  1.入门必备:VS2019社区版,下载地址:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com)

  2.趁手武器:印象笔记/有道云笔记

  3.修炼秘籍:牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网 (nowcoder.com)

  4.雷劫必备:leetcode 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

  注:遇到瓶颈怎么办?百度百科_全球领先的中文百科全书 (baidu.com)

二.高质量C编程

2.1 高质量C编程的思维导图(需要思维导图的加qq:972606225获取)

2.2 文件结构

  1.头文件的组成

   1)头文件的文件以.h结尾

   2)使用#pragma once防止头文件被重复引用

   3)头文件中包含预处理块和函数的声明和结构的声明

//test.h文件中的内容#pragma once //防止头文件重复使用
#include 
#include //预处理块
#define MAX 100
#define MIN 0//结构声明
struct People
{char name[10];int age;
}//函数的声明
void print();
void getMax(int x, int y);

  2.使用#include 和#include "xxx.h"的区别

   1)#include 的头文件编译器先从C语言的标准库中寻转匹配的头文件

   2)#include "xxx.h"的头文件编译器先从用户自己定义的头文件开始查找,任何在从C标准库中查找,若是都没有,则报错

//先从C标准库中的头文件开始查找
#include 
#include //从用户自己定义的头文件开始查找,然后从C标准库中的头文件查找,若都没有,报错
#include "test.h"

  3.头文件的定义结构

   1)头文件的引用

   2)头文件中函数和结构的具体实现

//test.c(函数和结构的具体实现)#include "test.h" //函数的具体实现
void print()
{printf("hehe\n");
}int getMax(int x, int y)
{return x > y ? x : y;
}int main()
{//结构的实现struct People p = {"jack",20};return 0;
}

  4. 头文件的作用

   1)头文件可以调用库功能

   2)头文件能加强类型安全检查

解释:通过头文件能调用相应的头文件中库功能,比如头文件中,我们可以调用scanf和printf库函数,如果我们写错了或者有类型不对,都会有相应的类型检查

2.3 程序的形式

  1.空行

   —— 空行起着分隔程序段落的作用,空行得体将使程序的布局更加清晰

  2.空行的规则

   1)每个结构声明、每个函数定义后结束之后都要加上一行空行

   2)函数体内,逻辑上密切相关的语句之间不加空行,其他地方应该加空格分隔

//结构声明
struct People
{char name[10];int age;
};
//加空行int getMax(int x, int y)
{return x > y ? x : y;
}
//每个函数定义后结束之后都要加上一行空行int grade(int score)
{//逻辑上密切相关的语句之间不加空行,其他地方应该加空格分隔int x = 0;int y = 0;if (x > y){score = x;}else{score = y;}return score;
}

  3.代码行规则

   1)一行代码只做一件事情,如只定义一个变量,或只写一条语句

   2)if、for、while、do等语句独占一行,执行语句不得紧跟其后,不论执行语句有多少都要加{} 

   3)尽可能在定义变量的同时进行初始化变量(就近原则)

#include int main()
{//一行代码只做一件事情,如只定义一个变量,或只写一条语句int num = 10;//定义变量int i = 0;//if、for、while、do等语句独占一行,执行语句不得紧跟其后//不论执行语句有多少都要加{} if (num > 0){num = 20;}while (i < 10){printf("%d ", i);i++;}return 0;
}

  4. 代码行内空格规则

1)关键字之后要留空格

2)函数名之后不要留空格

3)’,‘后留空格,’;‘:不是一行的结束标志,那么后面留空格

4)赋值运算符、比较运算符、算术运算符、逻辑运算符、位运算符等二元操作符前后都要有空格

5)一元运算符前后不加空格

6)[]、.、->:操作符前后不加空格

注:对于表达式过长的for和if语句,为了紧凑期间可以适当的去掉一些空格

#include "test.h"//函数名之后不要留空格
void print(int x, int y)
{printf("haha\n");
}int main()
{//关键字之后要留空格int num = 10;//int是关键字int i = 0;//’, ‘后留空格print(10, 20);int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//’; ‘:不是一行的结束标志,那么后面留空格//对于表达式过长的for和if语句,为了紧凑期间可以适当的去掉一些空格for (i=0; i<10; i++){printf("%d ", i);}//赋值运算符、比较运算符、算术运算符、逻辑运算符、//位运算符等二元操作符前后都要有空格int c = 10 + 20;//=:赋值运算符,+:算术运算符int d = 2 << 2;//<<:位运算符if (c > num)//>:逻辑运算符{printf("%d\n", c);}//一元运算符前后不加空格int data = !d;//!:是一元运算符struct People p = { "marry",18 };struct People* pa = &p;//[] 、.、->:操作符前后不加空格printf("%s %d", pa->name, pa->age);return 0;
}

  5.对齐规则

   1)程序的分隔符{}均独占一行并且位于同一列
   2){}里的代码块在{的左边进行对齐

#include "test.h"int main()
{//程序的分隔符{}均独占一行并且位于同一列,即对齐//{}里的代码块在{ 的左边进行对齐if (1 > 3){printf("hhhh\n");}return 0;
}

  6.长行拆分规则

   1)代码行最大长度控制在70~80个字符以内
   2)长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首。

//长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首。
if (num1 && num2 || num3 && num4 || num5 && num6 || num7 && num8 || num9)
{}

  7.修饰符规则:将修饰符*和&紧靠变量名,避免引起误会

#include int main()
{//将修饰符*和&紧靠变量名int* x, y;//x是int*类型,y是int类型;return 0;
}

  8.注释规则

1)注释是为了帮助理解代码,而不是文档
2)如果代码原来是清除的,则不需要加注释
3)边写代码边注释,修改代码的同时修改相应的注释,以保证注释与代码的一致性
4)注释应该易懂和准确,不能产生二义性
5)在注释中尽量不要使用缩写,使用缩写不好帮助理解代码
6)注释的位置应该在代码的上面或右面,不可在下面

2.4 命名规则 

  1.共性规则

1)标识符应该直观且可以拼读,要望文知意
2)标识符的长度应符合”min-length"&&"max-information"原则(最短长度,最多信息)
3)程序中不要出现仅靠大小写区分的相似标识符
4)程序中不要出现标识符相同的全局变量和局部变量
5)变量的名字应该使用名词或形容词+名词来进行命名
6)全局函数的标识符应使用动词或动词+名词来进行命名

  2.Windows下的命名规则

函数名使用每个单词都大写的形式
变量名和参数使用小写字母开头的单词组合
常量名使用全大写的单词形式,多单词的话用下划线隔开
静态变量加前缀s_,表示static
全局变量加前缀+g,表示global

三.猜数字游戏详解

  1.猜数字游戏的思维导图

  2.猜数字游戏思想:随机生成一个数(1-100),输入我们要猜的数据,使用我们输入的数据和随机数比较;若大于,则提示猜大了;若小于,则提示猜小了;若等于,则提示猜对了。

  3.rand()函数和srand()函数详解(需头文件:stdlib.h)

 注:需要搭配srand一起使用

  4.代码实现

#include 
#include 
#include void menu()
{printf("****************************\n");printf("*****    1.玩游戏      *****\n");printf("*****    0.退出游戏    *****\n");printf("****************************\n");
}void game()
{//生成1-100的随机数int num = rand() % 100 + 1;//printf("%d\n", num);int guessNum = 0;while (1){printf("请输入你猜的数字:\n");scanf("%d", &guessNum);//输入数据与随机数进行比较if (guessNum > num){printf("猜大了\n");}else if (guessNum < num){printf("猜小了\n");}else{printf("恭喜你,猜对了!!!\n");break;}}
}//猜数字游戏详解
int main()
{int opt = 0;//生成随机数种子srand((unsigned int)time(NULL));do{menu();//菜单printf("请选择:>");scanf("%d", &opt);switch (opt){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("选择错误,请重新选择\n");break;}} while (opt);return 0;
}

  5.演示

    !!!恭喜你,突破至筑基一层!!!

相关内容

热门资讯

原生安卓系统怎样升级,从基础到... 你有没有发现,你的安卓手机用久了,有时候就像老牛拉车一样,慢吞吞的?别急,今天就来给你支个招,让你的...
安卓13系统怎么开发,开发者的... 你有没有听说安卓13系统已经发布了?这可是个大新闻呢!作为一个热衷于手机开发的小伙伴,你是不是也跃跃...
安卓q系统镜像下载,轻松升级体... 你有没有听说安卓Q系统已经发布了?这可是安卓家族里的一大亮点呢!今天,我就要来给你详细介绍一下安卓Q...
安卓系统色彩校正软件,打造个性... 你有没有发现,手机屏幕的色彩有时候会让人感觉不太对劲?有时候,画面看起来有点灰蒙蒙的,有时候又太艳丽...
苹果能否下个安卓系统,开启新篇... 你有没有想过,苹果的iOS系统会不会有一天突然宣布,它要拥抱安卓的大家庭呢?想象iPhone和iPa...
树莓派 装 安卓系统,轻松安装... 你有没有想过,用树莓派装上安卓系统,那会是怎样一番景象呢?想象一个迷你电脑,竟然能运行起我们日常使用...
安卓系统怎么打印小票,安卓系统... 你是不是也遇到了这样的烦恼:手机里存了好多重要的小票,但是想打印出来保存或者报销,却发现安卓系统里的...
安卓10安装系统应用,轻松上手... 你有没有发现,你的安卓手机最近是不是有点儿“慢吞吞”的?别急,别急,今天就来给你支个招——升级安卓1...
美国不提安卓系统华为,迈向自主... 华为与美国:一场关于技术、市场与政策的较量在当今这个数字化的世界里,智能手机已经成为我们生活中不可或...
安卓系统怎么打开ppt,选择文... 你有没有遇到过这种情况:手里拿着安卓手机,突然需要打开一个PPT文件,却怎么也找不到方法?别急,今天...
谷歌退回到安卓系统,探索创新未... 你知道吗?最近科技圈可是炸开了锅,谷歌竟然宣布要退回到安卓系统!这可不是一个简单的决定,背后肯定有着...
安卓系统待机耗电多少,深度解析... 你有没有发现,手机电量总是不经用?尤其是安卓系统,有时候明明没怎么用,电量就“嗖”的一下子就下去了。...
小米主题安卓原生系统,安卓原生... 亲爱的手机控们,你是否曾为手机界面单调乏味而烦恼?想要给手机换换“衣服”,让它焕然一新?那就得聊聊小...
voyov1安卓系统,探索创新... 你有没有发现,最近你的手机是不是变得越来越流畅了?没错,我要说的就是那个让手机焕发青春的Vivo V...
电脑刷安卓tv系统,轻松打造智... 你有没有想过,家里的安卓电视突然变得卡顿,反应迟钝,是不是时候给它来个“大保健”了?没错,今天就要来...
安卓系统即将要收费,未来手机应... 你知道吗?最近有个大消息在科技圈里炸开了锅,那就是安卓系统可能要开始收费了!这可不是开玩笑的,这可是...
雷凌车载安卓系统,智能出行新体... 你有没有发现,现在的汽车越来越智能了?这不,我最近就体验了一把雷凌车载安卓系统的魅力。它就像一个聪明...
怎样拍照好看安卓系统,轻松拍出... 拍照好看,安卓系统也能轻松搞定!在这个看脸的时代,拍照已经成为每个人生活中不可或缺的一部分。无论是记...
安卓车机系统音频,安卓车机系统... 你有没有发现,现在越来越多的汽车都开始搭载智能车机系统了?这不,咱们就来聊聊安卓车机系统在音频方面的...
老苹果手机安卓系统,兼容与创新... 你手里那台老苹果手机,是不是已经陪你走过了不少风风雨雨?现在,它竟然还能装上安卓系统?这可不是天方夜...