C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:
在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
![1fde372d85f16a0d854eb85e16da83d3.png](https://i-blog.csdnimg.cn/blog_migrate/cbf8e8ca23ae31a1ba36b1091cd8bd9a.png)
一提到报数,可能大家可能会在第一时间内想到大学军训的美好时光,严厉的教官让我们从头到尾依次的报数。
![724c1affd25318f8527827104e2d35b3.gif](https://i-blog.csdnimg.cn/blog_migrate/bc3bd7ac86d006948836fde6ed10cc5f.gif)
虽然刚开始很讨厌教官,为什么训练的时候这么严厉,一个个都累的要死,但是当军训快结束的时候大家反而都挺舍不得的了,人就是这么奇怪的动物,(顺带默默地怀念一下以前的教官)。
不扯远了,今天的报数游戏呢,和军训时候教官让我们依次的报数不一样,我们要做的报数游戏呢,是选择一些人站成一圈,从第一个开始顺时针开始报数,一圈之后之后报数停止,念出报到数的人则要出局,然后重新开始下一轮,周而复始,依次计算出每一轮谁会出局,直到剩下最后一个人为止!
![b19a4b679936295121bec906079e9092.png](https://i-blog.csdnimg.cn/blog_migrate/9616917c2b78eae252935b005e60d646.png)
(咳咳,素材图是我画的,没找到具体相关的图片,大家将就一下)
玩法呢,就如上面解说的一样,输入玩这个游戏的人数和报到数,然后程序就会计算出每轮所淘汰的那个人,最终留下幸存者(这人肯定运气好,去买注彩票也是极好的)!
![0ecd4b90a9f73f2ce0aae77062f3cb63.png](https://i-blog.csdnimg.cn/blog_migrate/233a3f964bd8ad0cad4c500c0807f529.png)
下面看代码吧:
/*********************************************************************
*以循环队列的数据结构实现
*时间复杂度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;
}
![536ca0df297835c0e879cb3b1f738839.png](https://i-blog.csdnimg.cn/blog_migrate/0ff74fe026d2e6964c053f666930ea4c.png)
其实这段代码很简单,并不是很难,只是大家学习C语言之后却没有学会怎么运用所学知识的思想,也就是所谓的 “ 我能看懂程序代码是怎么运行的,可是,程序是怎么设计出来的就完全懵逼了。” 成了只会看而不会写的人!
自学C/C++不易,此路应携手前行。
如果你想跟着小编一起学编程的话!
可以来我的C语言/C++编程学习基地,【点击进入】!
还有(源码,零基础教程,项目实战教学视频)【进入领取】!
![856a7d73d8a914270a9136ba332506af.png](https://i-blog.csdnimg.cn/blog_migrate/03a9b16d58606abb8b31558876d4216a.jpeg)
![3a0e5f570540bf7c3c472cfda551c44e.png](https://i-blog.csdnimg.cn/blog_migrate/afb95c85f29526d2294a91305ff40016.jpeg)