C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:

在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

 

一提到报数,可能大家可能会在第一时间内想到大学军训的美好时光,严厉的教官让我们从头到尾依次的报数。

 

虽然刚开始很讨厌教官,为什么训练的时候这么严厉,一个个都累的要死,但是当军训快结束的时候大家反而都挺舍不得的了,人就是这么奇怪的动物,(顺带默默地怀念一下以前的教官)。

不扯远了,今天的报数游戏呢,和军训时候教官让我们依次的报数不一样,我们要做的报数游戏呢,是选择一些人站成一圈,从第一个开始顺时针开始报数,一圈之后之后报数停止,念出报到数的人则要出局,然后重新开始下一轮,周而复始,依次计算出每一轮谁会出局,直到剩下最后一个人为止!

 

(咳咳,素材图是我画的,没找到具体相关的图片,大家将就一下)

玩法呢,就如上面解说的一样,输入玩这个游戏的人数和报到数,然后程序就会计算出每轮所淘汰的那个人,最终留下幸存者(这人肯定运气好,去买注彩票也是极好的)!

 

下面看代码吧:

/*********************************************************************

*以循环队列的数据结构实现

*时间复杂度T(n)

*采用循环队列数据结构,使得每次对数组的访问次数减少到最少

**********************************************************************/

#include

#include

int main()

{

int i = 0, num = 1, die = 0, front, rear, temp = 0;

while (num != 0)

{

printf(" 输入人数,小于零退出:");

scanf("%d", &num);

printf(" 输入报到数:");

scanf("%d", &die);

int *cycle = (int *)malloc((num + 1) * sizeof(int));

for (i = 0; i <= num; i++)

{

cycle[i] = i;

}

front = 1;

rear = num;

i = 1;

while (front != rear)

{

temp = (rear + 1) % (num + 1);

cycle[temp] = cycle[front];

front = (front + 1) % (num + 1);

if (i == die)

{

i = 1;

printf("%d出队 ", cycle[temp]);

}

else

{

i++;

rear = (rear + 1) % (num + 1);

cycle[rear] = cycle[temp];

}

}

printf("幸存者是%d ", cycle[front]);

free(cycle);

num = 0;

}

return 0;

}

 

其实这段代码很简单,并不是很难,只是大家学习C语言之后却没有学会怎么运用所学知识的思想,也就是所谓的 “ 我能看懂程序代码是怎么运行的,可是,程序是怎么设计出来的就完全懵逼了。” 成了只会看而不会写的人!

自学C/C++不易,此路应携手前行。

如果你想跟着小编一起学编程的话!

可以来我的C语言/C++编程学习基地【点击进入】

还有(源码,零基础教程,项目实战教学视频)【进入领取】!

 

 

适合刚刚学习编程的萌新:C语言编程学习制作超简单又好玩的报数游戏!的更多相关文章

  1. JavaSE学习总结(三)——Java语言编程练习、格式化字符与常量

    一.变量.常量.字面量 package com.zhangguo.chapter2_3; /** * 1.银行利率为5%,问存款100美元5年的收益细节? * */ public class P1 { ...

  2. 萌新关于C#委托一点见解

    开博第一写C#委托(一个简单的委托) 1.关于委托,一直是学习c#的萌新们的噩梦,小生也是.最近在学委托感觉瞬间被虐成狗,但作为C#中极为重要的一个内容,学好了将会及大地减少我们的代码量,而且这也是够 ...

  3. Spark 概念学习系列之Spark 多语言编程

    不多说,直接上干货! Spark 同时支持Scala.Python.Java 三种应用程序API编程接口和编程方式, 考虑到大数据处理的特性,一般会优先使用Scala进行编程,其次是Python,最后 ...

  4. 萌新学习Python爬取B站弹幕+R语言分词demo说明

    代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...

  5. 适合 C++ 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 俗话说:万事开头难,学习编程也是一样.在 HelloGitHub 的群里,经常遇到有小伙伴询问编程语言如何入门方面的问题,如: 我要学习某一门编程语言,有什么开源 ...

  6. 适合 Go 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干&卤蛋 故事要从 2007 年说起.因为受够了 C++ 煎熬的 Google 首席软件工程师 Rob Pike 召集 Robert Griesemer 和 ...

  7. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  8. 大数据萌新的Python学习之路(一)

    笔记开始简介 从2018年9月份正式进入大学的时代,大数据和人工智能的崛起让我选择了计算机专业学习数据科学与大数据技术专业,接触的第一门语言就是C语言,后来因为同学推荐的原因进入了学校的人工智能研究协 ...

  9. 萌新--关于vue.js入门及环境搭建

    十几天闭关修炼,恶补了html跟css以及JavaScript相应的基础知识,恰巧有个群友准备做开源项目,愿意带着我做,但是要求我必须懂vue.js,所以开始恶补vue.js相关的东西. 在淘宝上买了 ...

随机推荐

  1. CTF资源

    WINDOWS 逆向工程师技能表 https://www.sec-wiki.com/skill/6 Software-Security-Learning https://chybeta.github. ...

  2. .NET Core加解密实战系列之——对称加密算法

    简介 加解密现状,编写此系列文章的背景: 需要考虑系统环境兼容性问题(Linux.Windows) 语言互通问题(如C#.Java等)(加解密本质上没有语言之分,所以原则上不存在互通性问题) 网上资料 ...

  3. 浅谈DOM事件的优化

    在 JavaScript 程序的开发中,经常会用到一些频繁触发的 DOM 事件,如 mousemove.resize,还有不是那么常用的鼠标滚轮事件:mousewheel (在 Firefox 中,滚 ...

  4. MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解

    文章出处:https://www.souyunku.com/2018/07/30/mysql/?utm_source=tuicool&utm_medium=referral MySQL/Inn ...

  5. 软件开发过程中常用的环境解释DEV FAT UAT PRO

    1.DEV Development environment 开发环境,用于开发者调试使用 2.FAT Feature Acceptance Test environment 功能验收测试环境,用于软件 ...

  6. 学习 | css3基本动画之demo篇

    移动端使用的框架是zepto,但是zepto的内置对象没有传统的animate这个方法,效果都是需要css3来实现的,zepto也不支持fadeIn和fadeOut等一些基本的动画,基于这一现状,我自 ...

  7. NX二次开发-NX访问SqlServer数据库(增删改查)C#版

    版本:NX9+VS2012+SqlServer2008r2 以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297 ...

  8. day53:django:URL别名/反向解析&URL分发&命名空间&ORM多表操作修改/查询

    目录 1.URL别名&反向解析 2.URL分发&命名空间 3.ORM多表操作-修改 4.ORM多表操作-查询 4.1 基于对象的跨表查询 4.2 基于双下划线的跨表查询 4.3 聚合查 ...

  9. idea配置springboot项目记录

    配置文件application.properties server.port=80 server.servlet.context-path=/bookManage spring.mvc.static- ...

  10. 全世界最强的算法平台codeforces究竟有什么魅力?

    大家好,之前说过由于和LeetCode结了梁子,所以周末的LeetCode专题取消了,给大家写点其他专题的算法问题.目前选择的是国外著名的编程竞赛平台--codeforces.它在竞赛圈名气比较大,对 ...