精华内容
下载资源
问答
  • 写下这篇文章的目的是作为过来人想给初学者一些建议,本文没有涵盖C语言的方方面面,但是对于想入门的初学者来说足够了。另外需要说明的是,我不是大神,真正的大神是开发C语言标准,写标准库,写编译器的那帮人,但...

    写下这篇文章的目的是作为过来人想给初学者一些建议,本文没有涵盖C语言的方方面面,但是对于想入门的初学者来说足够了。另外需要说明的是,我不是大神,真正的大神是开发C语言标准,写标准库,写编译器的那帮人,但我自认为我的C语言掌握的比周围的很多人都要好,所以才敢写出这篇文章,写下这个标题。

    想学一门编程语言,不知道学什么才好? 毫无疑问 C 语言啊。

    C 语言是整个计算机体系的基础,往下可以操作硬件(不止X86计算机,还有ARM,DSP,单片机等各种微处理器)写Firmware,写驱动、写OS,写编译器,往上可以写 App,并且几乎所有的计算机书籍里的算法都是C语言描述的。

    所以学会了 C 语言,就是掌握了软件领域的必备技能,以后再学其他的比如C++,Java,各种解释性语言、就是小 Case 了。

    下图是一个网上流行的程序员“鄙视链”。其实我想说的是,还是有一定道理的,哈哈哈,笑而不语。

    c4b4674a6163c47061116f848fbef5a0.png

    上课的模式是老师在上面讲,我们在下面听,然后就没有然后了,因为没有电脑练习,我根本就没有机会在课下了解更多的东西。学完了一本书,C 语言是干嘛的我都不知道,那个时候我并不知道 C 语言是用来写软件的,更何况别说软件了,电脑都没怎么见过。

    我们当初用的教材名字叫 《VC++ 语言程序设计》,这导致我很长一段时间都没不知道VC++,和 C++, C 的区别,OMG!!

    我认真地从头到尾翻了一遍H.M.Deitel 的那本 C++,有了电脑简直如虎添翼,我有阵子天天在宿舍编程。对了,我是在学习C++的时候,顺带学习(复习)的 C 语言,反正 C++ 的书上总有会 C 的。

    这里是我总结的学习 C 语言的几个步骤,其他编程语言基本类似,希望对大家有所帮助。

    1. 看书

    电子书

    4d1d1f541e6aa0fed9c5e262823c8504.png

    学习一门编程语言少不了先学习基本语法。

    C语言的语法也就是变量,数组、指针、表达式、逻辑操作、函数,宏定义等等。学习这些先买一本入门级书籍,其实大都差不多,最经典的就是谭浩强的那本了,虽然在知乎上没少被人黑,但是流行了这么多年,总归是有可取之处的,其实作为入门书,你不能指望从它里面得到你想知道的所有东西。

    除了基本语法,C 语言另一部分是标准库。

    这一点很少被C语言入门书提及,但是你要想写出一个像样的程序的话,标准库必不可少。推荐这本世界级C语言专家编写的《C标准库》。

    75757757a4e581aeb1e415598305813d.png

    2. 写代码练习

    要想学好一门编程语言,看书远远不够,一定要把书里的代码搬到电脑里。

    相信大多数人都是使用的Widnows,那么就下载安装一个Visual Studio吧,用哪个版本?最新的 VS2017 毋庸置疑。

    喜欢 Linux 的朋友,就先下载 Glibc 库,然后安装 gcc, gdb。

    好了,有了开发环境,接下来一切变得简单,并且好玩。

    试着写一些简单的代码,比如 Hello World,文件读写,数学操作,常用算法,等等。

    这是我以前练手时写的

    d8e1669e7c339465808f642ff1ad1291.png

    3. 总结心得体会

    把你觉得很抽象、难以理解的东西放到 VS 里面进行调试,会有很多发现。我以前电脑里就经常会有一个名字叫 Test 的工程文件夹,哪里有疑惑了,就把代码放进去,一 Debug,全部的疑云就解开了。

    比如这样,了解 Struct 内存结构

    f5b1eb2a721bca5ff6fa9cfce6831740.png

    比如这样,了解 Union 的内存结构

    a1e249e8920e1838025edb84f64ca827.png

    比如这样,了解 指针和数组

    d5535c222277a438a0fb8e6674b8b00a.png

    然后把这一切,记录在一个 Word 中,这样知识就变成自己的了。

    4. 写个小作品基本知识掌握的差不多了,试着写个小程序。

    看着人生第一个自己开发的程序,会有很多的成就感,并且在写程序的过程中,你的编程能力会有质的飞跃。

    我曾经写过一个控制台的五子棋游戏,可惜年代久远,现在已经打不开了。

    另外需要说明的是,想在 Windows 上写一个有界面的程序的话,还需要学习Windows API,不过这仿佛是 C 语言之外的东西了,单单学习 C 语言,一个控制台程序就够了。

    最后一句话作为总结:想要你的编程能力突飞猛进,一定要勤加练习。

    展开全文
  • 1059C语言竞赛(20分)C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。1、排名为...

    1059 C语言竞赛 (20分)

    C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:

    • 0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。

    • 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!

    • 2、其他人将得到巧克力。

    给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。

    输入格式:

    输入第一行给出一个正整数 N(104),是参赛者人数。随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组成)。接下来给出一个正整数 K 以及 K 个需要查询的 ID。

    输出格式:

    对每个要查询的 ID,在一行中输出 ID: 奖品,其中奖品或者是 Mystery Award(神秘大奖)、或者是 Minion(小黄人)、或者是 Chocolate(巧克力)。如果所查 ID 根本不在排名里,打印 Are you kidding?(耍我呢?)。如果该 ID 已经查过了(即奖品已经领过了),打印 ID: Checked(不能多吃多占)。

    输入样例:

    6
    1111
    6666
    8888
    1234
    5555
    0001
    6
    8888
    0001
    1111
    2222
    8888
    2222

    输出样例:

    8888: Minion
    0001: Chocolate
    1111: Mystery Award
    2222: Are you kidding?
    8888: Checked
    2222: Are you kidding?

    a971b4a49b4632b789266160d451ee28.png

    这题时间挺紧张的。本来我是先生成一个素数表的,但是运行超时了。本来我是用string存储ID的,这样输出的时候很轻松,但是还是超时了。所以程序流程是;①处理排名输入。放在数组里。还要添加本身数值。存储是否被查询过。②处理查询输入。放在数组里。查询过Checked如果是第一名:Mystery Award如果是素数名称Minion不是素数名次 Chocolate不存在Are you kidding?

    代码:

    #include
    int judge(int number)
    {
    int i,m = sqrt(number);
    if(number <= 1)
    return 0;
    else
    {
    for(i = 2; i <= m; i++)
    if(number % i == 0)
    return 0;
    }
    return 1;
    }
    int main()
    {
    int i,n,m,num;
    scanf("%d",&n);
    int a[10001] = {0};
    for(i=0;i {
    scanf("%d",&num);
    a[num]=i+1;
    }
    scanf("%d",&m);
    for(i = 0; i < m; i++)
    {
    scanf("%d",&num);
    if(a[num] == -1)
    printf("%04d: Checked\n", num);
    else if(a[num] == 1)
    {
    printf("%04d: Mystery Award\n", num);
    a[num] = -1;
    }
    else if(judge(a[num]))
    {
    printf("%04d: Minion\n", num);
    a[num] = -1;
    }
    else if(a[num] == 0)
    printf("%04d: Are you kidding?\n", num);
    else
    {
    printf("%04d: Chocolate\n", num);
    a[num] = -1;
    }
    }
    return 0;
    }

    e22280b4cd83e9bcc5b87194151a8c9f.png

    展开全文
  • 这个案例,介绍14级同学大一时写的2048游戏,分步骤代码可从百度云盘下载:http://pan.baidu.com/s/1bRuVlc大家可先运行2048Exe_finalDebugExe_final.exe,也可点击下面图片,看看游戏效果:游戏简介:2048是比较...

    f382da8630bfb1f602a15e921da027d3.png

    这个案例,介绍14级同学大一时写的2048游戏,分步骤代码可从百度云盘下载:http://pan.baidu.com/s/1bRuVlc

    大家可先运行2048Exe_finalDebugExe_final.exe,也可点击下面图片,看看游戏效果:

    dd5ca2b35d0170fb7cc2c2dad5457706.png

    游戏简介:

    2048是比较流行的一款数字游戏。原版2048首先在GitHub上发布,原作者是Gabriele Cirulli。

    这是20岁的Gabriele

    Cirulli开发的一款数字游戏。初衷就是觉得好玩,将开源版本放到Github后意外走红。这款游戏的玩法很简单,每次可以选择上下左右滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,系统也会在白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。不断的叠加最终拼凑出2048这个数字就算成功。

    每次可以选择上下左右其中一个方向去滑动,每滑动一次,

    所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。不断的叠加最终拼凑出2048这个数字就算成功。

    以下是分步骤代码的主要实现内容:

    Code_1

    80bee8f5dcd945ac98bcc9ea4ee6781e.png

    Code_2

    92b4ab18f2fa9b369f20b66e0d9cc3d6.png

    Code_3

    96b8fe7caf2ae5e0bc14dfe1bfa14429.png

    Code_4

    fdcca166dd796c3d20922d790f2137e4.png

    Code_5

    6e02c1aa9552076dc8c932b0dde82786.png

    Exe_Final

    ba98845087862a6af25ebd39f805e8ee.png

    大家可以参考以上实现思路,先自己尝试开发,遇到问题再参考相应步骤的代码。

    展开全文
  • 一个好玩的代码

    千次阅读 2019-10-27 09:21:09
    转自知乎雾人心 原文链接... 一个比较简单的,也比较有趣的C语言代码: /* Note:Your choice is C IDE */ #include<stdio.h> #include<math.h> #include<windows.h> #inc...

    转自知乎雾人心
    经缘定三生石修改之后为:
    一个比较简单的,也比较有趣的C语言代码:

    /* Note:Your choice is C IDE */
    #include<stdio.h>

    #include<math.h>

    #include<windows.h>

    #include<time.h>

    #include<stdlib.h>

    void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)

    {

    HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
    
    SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
    

    }

    int main()

    {

    float x,y;
    
    int s=0,n,i,j;
    
    for(i = 1; i <= 50; i++)
    
    {
    
    	SetColor(0,14);
    
    	printf(" ");
    
    	printf("%d%%",2*i);
    
    	Sleep(101-1*i);
    
    	printf("\b\b\b");
    
    }
    
    SetColor(15,0);
    
    printf("\b\n加载完成!即将进入:");
    
    Sleep(2000);
    
    system("cls");
    
    do
    
    {
    
    	system("color 0E");
    
    	for(i=0; i<=56; i++)
    
    	{
    
    		if(i>=20) {
    			printf("*");
    			Sleep(10);
    		}
    
    		else printf(" ");
    
    	}
    	printf("\n");
    
    	for(i=0; i<=56; i++)
    
    	{
    
    		if(i>=20) {
    			printf("*");
    			Sleep(10);
    		}
    
    		else printf(" ");
    
    	}
    
    	printf("\n\t\t\t你想要怎样的心形:\n");
    
    	printf("\n\t\t\t1:由love组成的心形!\n");
    
    	printf("\n\t\t\t2:由随机字符组成的心形!\n");
    
    	printf("\n\t\t\t3:由随机数字组成的心形!\n");
    
    	printf("\n\t\t\t4:由随机颜色组成的心形!\n");
    
    	printf("\n\t\t\t5:退出!\n");
    
    	for(i=0; i<=56; i++)
    
    	{
    
    		if(i>=20) {
    			printf("*");
    			Sleep(10);
    		}
    
    		else printf(" ");
    
    	}
    	printf("\n");
    
    	for(i=0; i<=56; i++)
    
    	{
    
    		if(i>=20) {
    			printf("*");
    			Sleep(10);
    		}
    
    		else printf(" ");
    
    	}
    
    	printf("\n\t\t\t");
    
    	srand(time(NULL));
    
    	scanf("%d",&n);
    
    	system("cls");
    
    	switch(n)
    
    	{
    
    		case 1:
    
    			for(x=1.3; x>=-1.1; x-=0.1)
    
    			{
    				for(y=-2; y<=1.4; y+=0.053)
    
    				{
    
    					if(pow(x*x+y*y-1,3)-x*x*x*y*y<=0)
    
    					{
    
    						s++;
    
    						if(s%4==1)printf("l");
    
    						if(s%4==2)printf("o");
    
    						if(s%4==3)printf("v");
    
    						if(s%4==0)printf("e");
    
    						Sleep(2);
    
    					}
    
    					else
    
    						printf(" ");
    
    				}
    
    				printf("\n");
    
    			}
    
    			printf("绘制完成,按任意键返回主页面!");
    			break;
    
    		case 2:
    			for(x=1.3; x>=-1.1; x-=0.1)
    
    			{
    				for(y=-2; y<=1.4; y+=0.053)
    
    				{
    
    					if(pow(x*x+y*y-1,3)-x*x*x*y*y<=0)
    
    					{
    
    						printf("%c",rand()%10+rand()%10+97);
    
    						Sleep(2);
    
    					}
    
    					else
    
    						printf(" ");
    
    				}
    
    				printf("\n");
    
    			}
    
    			printf("绘制完成,按任意键返回主页面!");
    			break;
    
    		case 3:
    			for(x=1.3; x>=-1.1; x-=0.1)
    
    			{
    				for(y=-2; y<=1.4; y+=0.053)
    
    				{
    
    					if(pow(x*x+y*y-1,3)-x*x*x*y*y<=0)
    
    					{
    
    						printf("%d",rand()%10);
    
    						Sleep(2);
    
    					}
    
    					else
    
    						printf(" ");
    
    				}
    
    				printf("\n");
    
    			}
    
    			printf("绘制完成,按任意键返回主页面!");
    			break;
    
    		case 4:
    			for(x=1.3; x>=-1.1; x-=0.1)
    
    			{
    				for(y=-2; y<=1.4; y+=0.053)
    
    				{
    
    					if(pow(x*x+y*y-1,3)-x*x*x*y*y<=0)
    
    					{
    
    						SetColor(0,rand()%6+10);
    
    						printf(" ");
    
    						Sleep(2);
    
    					}
    
    					else
    
    					{
    						SetColor(0,0);
    
    						printf(" ");
    					}
    
    				}
    
    				printf("\n");
    
    			}
    
    			SetColor(15,0);
    
    			printf("绘制完成,按任意键返回主页面!");
    			break;
    
    		default:
    			break;
    
    	}
    
    	getchar();
    	getchar();
    	system("cls");
    
    } while(n!=5);
    

    }

    展开全文
  • 掌握C语言的基本语法结构、程序设计方法和一些常见的算法; 掌握对程序排查错误的能力。 学习c语言图形制作. 学习函数调用. 掌握if-else,do-whlie,和switch的用法.
  • 1 贪吃蛇效果展示前言:C语言初学者都是在控制台上开发一些小游戏什么,由于没有界面(比如图片、音乐,不能做出拥有自己风格的程序)学起来比较乏味,很难坚持下去。所以我在这里就教大家使用简单的图形化工具——...
  • 斗地主C语言代码

    2015-04-13 17:00:17
    斗地主C语言代码,有兴趣的可以下载下来市是,挺好玩的
  • 说到代码混淆艺术,大家可能会想到 IOCCC 大赛中的阿卡林作品(如下图)。“阿卡林”,动漫作品《摇曳百合》中的主人公之一不过本文介绍 Andy Sloane 的一个作品:C 代码实现雅虎 logo ACSII 动图。自从他把这段代码放...
  • 以下是制作上面炫酷动画所需的全部代码:我们需要三组刚体(当您在Blender的对象上打开一个刚体的属性时,Blender将模拟与其它刚体的碰撞):1.平面第2行代码创建了一个简单的平面,立方体将放置在该平面上。为了防止...
  • 20届IOCCC比赛获奖结果和代码4月15日完整公布。国际C语言混乱代码大赛(IOCCC, The International ...比赛的目的是写出最有创意的最让人难以理解的C语言代码,当然有好玩的成分,但也能充分展示C语言和程序员的强大。
  • 2012国际C语言混乱代码大赛冠军代码

    千次阅读 2012-04-26 10:14:23
    国际C语言混乱代码大赛(IOCCC, The International Obfuscated C...比赛的目的是写出最有创意的最让人难以理解的C语言代码,当然有好玩的成分,但也能充分展示C语言和程序员的强大。 下图是今年Best of Show(最佳秀
  • 摘要:国际C语言混乱代码大赛(IOCCC, The International ...比赛的目的是写出最有创意的最让人难以理解的C语言代码,当然有好玩的成分,但也能充分展示C语言和程序员的强大。 国际C语言混乱代码大赛(IOCCC, T
  • 两个好玩的C语言程序

    千次阅读 2013-08-28 20:29:54
    1.写一个c语言程序,输出hello,删掉代码的第一个字符,输出world。 2.写一个c语言程序,输出hello,删掉代码的最后一个字符,输出world。 想了一会,写出了这两个代码,哈哈,再次膜拜一下c语言的语法。 Think ...
  • 觉得好玩的直接复制拿走。#include #include #include #define PI 3.14 int jf() { int a1,b1,a2,b2,m,n,i; printf("请以“1/8 1/9”为例输入两个分数\n"); scanf("%d/%d",&a1,&b1); scanf("%d/%d",&a2,&b2);
  • 一个好玩的小游戏(纯C语言编写)

    万次阅读 多人点赞 2017-03-12 16:52:40
    最近在看知乎是发现了一个这一个专栏 ...从中获取的许多知识,本文中的游戏也是从...更新日志,本人将原来的原来的代码有进一步的优化了一下,之前是只有一个非常小的战机现在更新后可以产生一个非常大的战机(看起来也更
  • 分析一个好玩的c语言程序

    千次阅读 2012-10-10 15:39:51
    代码如下: #include int main() { const short int c1 = 49920; const int c2 = 1073742008; int (*pf)() = (int (*)())&c2; printf("%c%c\n", *(char*)pf()-19, *((char*)pf()+1)-49); retu
  • 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!说不定还能涨知识哦! 1、gets()函数 问:请找出下面代码里的问题: 答:上面代码里的问题在于函数gets()的使用, 这个...
  • 魔塔的源代码(C语言)

    热门讨论 2010-10-26 09:32:01
    魔塔的源代码(C语言) 好玩的游戏。。。
  • 课程设计—用C语言编码一个小游戏(flappy bird)前言一、系统简介二、函数模块图三、具体代码头文件 前言 完成该程序需要用到easy-x库数据,建议用vc6或vs2013版本以上等支持安装easy-x库的软件 一、系统简介 ...
  • 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?...2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j&...
  • 1 贪吃蛇效果展示前言:C语言初学者都是在控制台上开发一些小游戏什么,由于没有界面(比如图片、音乐,不能做出拥有自己风格的程序)学起来比较乏味,很难坚持下去。所以我在这里就教大家使用简单的图形化工具——...
  • 今天给大家用C++写一款超好玩的休闲竞技游戏,不仅比拼手速,更考验你的策略!在贪吃蛇大作战的世界中,每个人化身为一条小蛇,通过不断努力变得越来越长,最终成为最贪吃的最长的贪吃蛇!地图以绿地为有点奇怪的...
  • 在电脑上翻出一个十年前学C语言时写的一个小游戏,代码虽比较散乱,但由于它是我的第一个算是比较完整的游戏吧,所以没舍得丢弃它。玩起来挺好玩的,玩好了,还有C语言画的漂亮图形奖励呢!
  • 前段时间疯传的武大学生...先看一个最简单又好玩的:五行代码画一个方形的螺旋线。画出来的图是这样的:下面是简单的五行代码,你只要懂这几个英文单词,保管看得懂:turtle —— 小海龟,在沙滩上画画的小能手lengt...
  • 很多刚开始学习编程的同学都希望自己可以去开发一些游戏,当学习了c语言的时候却发现总是用c语言去解决一些数学问题,今天我就分享给大家一个我学习c语言时候学到的一些好玩的东西,希望可以帮助大家保持对编程的...
  • C语言源程序集合

    2018-12-05 11:15:00
    包含了C语言版本的一些比较好玩的小程序源代码,数据结构(C语言版)书籍,C语言复习题以及C语言编译软件。

空空如也

空空如也

1 2 3 4 5
收藏数 95
精华内容 38
关键字:

c语言好玩的代码

c语言 订阅