题目

解决代码及点评



/*
功能:插入排序。许多玩牌的人是以这样的方式来对他们手中的牌进行排序的:
设手中原有3张牌已排好序,抓1张新牌,若这张新牌的次序在原来的第2张牌之后,第
3张牌之前,那么就把这张新牌放在第3张牌的位置上,原来的第3张改为第4张,
然后再抓新牌。按着这个算法,编写一个排序程序。
注:开始一张牌也没有,从第一张牌开始抓起。 时间:23:34 2013/10/24
*/ #include<stdio.h>
#include<stdlib.h> struct card
{
int num;
struct card *pNext;
}; typedef struct card CARD; CARD *initList(int); //链表初始化声明,第一张牌
void insertList(CARD *p,int n); //在第i个元素后插入
void showAll(CARD *p); void main()
{
CARD *pHead=initList(2); //头结点创建,next=Null insertList(pHead,4);
insertList(pHead,3);
insertList(pHead,1);
showAll(pHead);
system("pause");
} void showAll(CARD *p)
{
do
{
printf("%d \n",p->num);
} while((p->pNext!=NULL) && (p=p->pNext));
} void insertList(CARD *p,int n)
{
CARD *pNew=(CARD *)malloc(sizeof(CARD)); //分配新结点
if(pNew==NULL)return;
if(n<p->num) //判断n是否小于头结点 如果小于,将头结点的值与n交换
{
int temp=p->num;
p->num=n;
n=temp;
}
CARD *Prior=p; //用来保存前结点
while(n>p->num && p->pNext!=NULL) //当n大于当前结点时,指针向后移,知道小于当前结点或next为NULL时终止
{
Prior=p; //循环结束后,为当前结点的前结点
p=p->pNext;
}
if(n<p->num) //当n<小于当前结点,则在当前结点前插入n
{
Prior->pNext=pNew;
pNew->pNext=p;
pNew->num=n;
}
if(p->pNext==NULL && n>p->num) //假设牌码最大,则在链表尾部插入
{
p->pNext=pNew;
pNew->pNext=NULL;
pNew->num=n;
} }
CARD *initList(int n)
{
CARD *p=(CARD *)malloc(sizeof(CARD));
if(p==NULL)return NULL; //分配失败返回空
p->num=n;
p->pNext=NULL;
return p;
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行

程序运行结果

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






基于visual Studio2013解决C语言竞赛题之1049抓牌排序的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之1054抽牌游戏

       题目 解决代码及点评 /************************************************************************/ /* 54 ...

  2. 基于visual Studio2013解决C语言竞赛题之1053洗牌

       题目 解决代码及点评 /* 功能:洗扑克牌.将54张牌分别编号为1,2,-,54号,并放在数组M中. 洗牌方法如下:产生[1,54]区间内的一个随机数K,将M[1]与M[K]交换: ...

  3. 基于visual Studio2013解决C语言竞赛题之1065二维排序

        题目 解决代码及点评 /* 功能:二维数组排序.设有4×5的数组M,通过排序使 M[1][1]≤M[1][2]≤...≤M[1][5]≤M[2][1]≤M[2][2]≤...≤ ...

  4. 基于visual Studio2013解决C语言竞赛题之1067间隔排序

        题目 解决代码及点评 /* 功能:间隔元素排序.用随机函数产生25个[25,75]之间的整数, 把它送到一维数组M中. 要求对M[I],M[I+J],M[I+2*J],-这些元 ...

  5. 基于visual Studio2013解决C语言竞赛题之0401阶乘

      题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...

  6. 基于visual Studio2013解决C语言竞赛题之0205位数求和

     题目

  7. 基于visual Studio2013解决C语言竞赛题之0201温度转换

    题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...

  8. 基于visual Studio2013解决C语言竞赛题之0409 100以内素数

       题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...

  9. 基于visual Studio2013解决C语言竞赛题之0408素数

      题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...

随机推荐

  1. django template出错

    解决方法一: 先导入settings >>> from django.conf import settings >>> settings.configure() & ...

  2. Chromium如何显示Web页面

    Displaying A Web Page In Chrome 概念化的应用分层 参见原文档:http://goo.gl/MsEJX 每一个box代表一个抽象层.下层不依赖于上层. WebKit:渲染 ...

  3. Hadoop_Lucene

    http://codelife.me/blog/2012/11/03/jackson-polymorphic-deserialization/ http://itindex.net/blog/2012 ...

  4. 虽然net人

    http://v.qq.com/boke/page/c/h/0/c01173tzeh0.html http://v.qq.com/boke/page/r/7/x/r0117l07r7x.html ht ...

  5. CSS中border-style的属性

    属性可能的值 值 描述 none 定义无边框. hidden 与 "none" 相同.不过应用于表时除外,对于表,hidden 用于解决边框冲突. dotted 定义点状边框.在大 ...

  6. 用typedef声明类型

    定义: 可以用typedef声明一个新的类型名来代替已有的类型名. 用法: typedef int INTEGER;//指定用标识符INTEGER代表int类型 typedef float REAL; ...

  7. UIBezierPath详解

    使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线 ...

  8. Chapter 8 工厂方法模式

    工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行.你想要加功能,本来是改工厂类的,而现在是修改 ...

  9. php language construct 语言构造器

    isset和empty看起来像是函数,我们也经常把它当作函数一样使用,但是实际上,它们是语言构造器. php中的语言构造器就相当于C中的预定义宏的意思,它属于php语言内部定义的关键词,不可以被修改, ...

  10. java里,当long与上了int

    long switchState = 0xf0000000000L; int result = (switchState & 0xff00000000L) > 0 ? 0x01 : 0x ...