1、int result[n]; //这个数组用来存放结果,为了一一对应,n个人里,第一个的序号是0,不是我们习惯采用的1。int flag[n]; //这个数组用来标记这个n个人的状态,一一对应,报过3的所对应的标记为1,否则0。
成都创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供网站设计、网站建设、成都网页设计、成都小程序开发、成都网站开发、成都网站制作、成都软件开发、成都app软件开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
2、此问题被称为约瑟夫问题,比较经典。下面为单链表处理上述问题并对问题进行了优化,即你可以输入每次报到几时有人退出圈子和刚开始从第几个人开始报数。
3、每次不止退出一个人。因为是报到3的就退出。但是您只执行了n--应该是n-=(n+1)/3。或者是n=j。这样的话才是正确的。
4、n=1,1留,n=2,2留,n=3,2留,n=4,1留,5,4留。然后n大于等于6时,n=6,1留,n=7,4留,n=8,7留,…即留=3乘以(n除以3的余数)+1。
5、这个问题叫约瑟夫环,就是一群人围成一圈,从第一个人开始,报到3的出列,看最后留下谁。
不用,C语言只要记住一些简单的英文命令就行了,对英语要求不高。重要的是有较好的逻辑思维,而且把函数和指针学好。指针是C语言的精髓所在。我数学很一般,但是C语言二级考试确实高分通过。
对于学不好数学和英语能否学好C语言,各有各的见解。
c语言就那么30多个关键字,可以说对英语几乎是0要求,学习c语言数学好一点的话会容易点,因为很多c语言算法是用到数学知识的。
1、s是二维数组,用strlen()函数是不对的。你每次赋初值时,都越界了。
2、1表示这个循环条件永远成立,1表示真。也就是说结束循环使用里面的break进行结束。s对应的是字符串,也就是字符数组,8448这里是作为字符串处理的。char buff[10]={0}; 这里定义的是一个字符数组,不是字符。
3、668977 1 getchar的作用就是读入一个字符。2 循环是在遇到回车的时候结束。3 开始是读入的2这个字符,c-2=0,执行case 0:后面的语句一直到break为止,这也就输出了两个6。其他的输入情况都和3 同理。