满意答案

u6jjltfs0v

2014.05.15

采纳率:43%    等级:12

已帮助:4849人

这个问题你想让别人一步一步帮你递推演示,要累死人的。不仅解释的人累,大段大段的无聊文字你看着都累。

很多程序题目最主要的是理解实现过程,只要过程理解了,程序自己也可以写出来。

我帮你点拨一下吧。

首先,你可以把答案打印出来,照着答案自己循环数一下,通过这个过程,把每个数字到底是怎么出来的搞明白。

数据如下:1 8 2 5 10 3 12 11 9 4 7 6 13

然后开始数:先是1;再数2个是2;再数3个是3;……;数到4要数5的时候,7(1)、6(2)、13(3)、1(跳掉)、8(4)、2(跳掉)、到了,填5;……

明白了吗?

程序中n就是刚才括号里数的东西,a[j]就是刚才数的7,6,13……(程序运行的时候这些不用跳掉的数字还没有赋值,都是0),现在应该能明白了吧。

整个do-while语句内实现的就是刚才数的过程,j碰到结尾就从头开始。j碰到需要跳掉的时候就j++,否则就j++;n++,直到n==i。

补充一些基础知识:

(1)全局变量int a[14];运行前全部是0。

(2)if(a[j]),0的话就是false,赋过值了就是true。

其实这个程序写得不是非常有条理(不过执行效率不错),初学者读起来有点困难。想方便阅读的话,可以让n从0开始。n++以后再判断n==i。我帮你写个可读性强点的程序吧,读完我的再读他的,应该方便很多。

#include<stdio.h>

int a[14]={0};//显式地赋0值

int main()

{

int i,n,j=1;

printf("The original order of cards is:");

for(i=1;i<=13;i++)

{

n=0;

while(n!=i){//换成do-while也一样

if(a[j]==0){//如果位置空,n就计数

n++;

if(n==i)//到了,赋值

a[j]=i;

}

j=j==13?1:j+1;//j一直计数

}

}

for(i=1;i<=13;i++)

printf("%d ",a[i]);

printf("\n");

}

00分享举报

c语言实例 魔术师的猜牌术(1),C语言实例 魔术师的猜牌术(1)相关推荐

  1. c语言实例 魔术师的猜牌术(1),C语言实例:魔术师的猜牌术(1)

    魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看.魔术师将最上面的那张牌数为1,把它翻过来正好是 ...

  2. c语言中猜字母代码怎么打,C语言代码实现猜数字

    本文实例为大家分享了C语言代码实现猜数字的具体代码,供大家参考,具体内容如下 题目描述 猜数字游戏,顾名思义,就是需要人们猜测一个未知但已确定的数.其中,这个未知但要确定的数就要由编写程序随机来产生, ...

  3. 统计一段英文中单词的个数c语言,C语言统计一篇英文短文中单词的个数实例代码...

    具体代码如下所述: #include #define N 1000 void main(){ char en[N][81]; int i,j,num=0,n,state; //num 用来统计单词的个 ...

  4. 上海应用技术学院c语言实验报告9,上海工程技术大学C语言实验报告

    <上海工程技术大学C语言实验报告>由会员分享,可在线阅读,更多相关<上海工程技术大学C语言实验报告(7页珍藏版)>请在人人文库网上搜索. 1.实 验 报 告高级语言程序设计20 ...

  5. c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例

    详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include int main() { c ...

  6. java跳转控制语句有哪些_Java语言基础学习之流程控制语句和跳转控制语句实例分析...

    本文主要向大家介绍了Java语言基础学习之流程控制语句和跳转控制语句实例分析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.流程控制语句 在一个程序执行的过程中,各条语句的执行顺 ...

  7. C语言习题:猜数字游戏(C语言随机数)

    C语言习题:猜数字游戏(C语言随机数) 需要了解C语言随机数的生成方法: 在C语言中比较常用的随机函数是 rand 函数,它可以随机的产生 0 ~ rand_max 的随机数,定义类型不同最大值也不同 ...

  8. c语言比较函数memcmp,c语言函数memcmp()如何比较内存前n个字节实例源码介绍

    c语言函数memcmp()如何比较内存前n个字节实例源码介绍.引入头文件:#include 定义memcmp()函数:int memcmp (const void *s1, const void *s ...

  9. 上海工程技术大学c语言试卷,上海工程技术大学2009_2010C语言试卷A.doc

    上海工程技术大学2009_2010C语言试卷A PAGE PAGE 6 (勤奋.求是.创新.奉献) 2009-2010(1)C语言试卷A 课程序号___________ 班级 __________ 学 ...

  10. c语言远控,远控鼠标!C语言简单编程:整舍友必备+附送实例源码!

    远控鼠标!C语言简单编程:整舍友必备+附送实例源码!-1.jpg (10.71 KB, 下载次数: 0) 2018-10-11 05:24 上传 关注<一碳科技>有更多干货等着你哦! 远控 ...

最新文章

  1. 转 如何利用客户端缓存对网站进行优化?
  2. 基于智能的网络空间安全防御
  3. 辅助类BinaryTreeNodeIndex(用index索引代替指针)
  4. kotlin 构造函数_Kotlin程序| 主要构造函数示例
  5. Swift UIColor 添加从十六进制值初始化的扩展
  6. Windows服务简单实例
  7. Java基础之数组练习
  8. BZOJ 1051 || POJ 2186 受欢迎的牛 Tarjan
  9. JavaWeb:Tomcat、Servlet
  10. 勒让德方程(多项式)和缔合勒让德方程(多项式)和球谐函数
  11. Linux卡巴斯基杀毒(kesl)基础操作
  12. R语言学习笔记 | R语言的入门
  13. 无线接入回传一体化关键技术及标准化进展
  14. 【安卓】设置界面为横屏的设置方法
  15. SpringCloud从0到丧心病狂
  16. 好记性真的不如烂笔头
  17. obj文件(1):obj文件用txt打开并且了解v,f,vn,vt的含义
  18. mysql归档模式_数据库归档模式设置步骤
  19. Promise对象的resolve回调函数和reject回调函数使用
  20. 华为认证HCIA H12-811 Datacom数通考试真题题库【带答案刷题必过】【第一部分】

热门文章

  1. 三国华容道网页版来了
  2. VS2022/VS2019安装WinForm打包程序,Microsoft Visual Studio Installer Projects 2022下载(网盘下载),Installer Project
  3. Mac不能为虚拟电脑打开一个新任务
  4. 基于H.264的RTP打包原理和FU-A分片实例分析
  5. java将数组加上千分号_[宜配屋]听图阁
  6. oracle之汉字转拼音
  7. 英语四级词汇:四级词组百词大关
  8. 听见丨酷骑修改退押金方式,用户将只能通过电话退款 苹果3000万美元收购增强现实初创企业Vrvana
  9. 6763个gb2312汉字笔画分析
  10. 国庆不去哪儿:用python爬虫爬取热门景点并生成热力图