标题:请帮忙!程序没有错误,但输出的是随机数。该题是数据结构的插入排序。[em0 ...
只看楼主
林小阮
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-5-22
结帖率:33.33%
已结贴  问题点数:20 回复次数:1 
请帮忙!程序没有错误,但输出的是随机数。该题是数据结构的插入排序。[em01]
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
typedef  int  keytype;
typedef  char infotype;
const maxsize=20;
typedef  struct
{
      keytype key;//关键字项
      infotype  otherinfo;//其他数据项
}rcdtype;//记录类型
typedef struct
{
      rcdtype r[maxsize+1];//a[0]闲置作为不能别标志的哨兵
      int length;     //顺序表排序的记录空间r[1,length]
}sqlist;// 顺序表类型
void  insertsort(sqlist &l)
{
    //对顺序表l做插入排序
    int i,j;
    for(i=2;i<=l.length;++i)
    {
         if(l.r[i].key<l.r[i-1].key)//当<时,才需要将l.r[i].key插入有序序列中
         {
         l.r[0]=l.r[i];//复制为哨兵
          }
          for(j=i-1;l.r[0].key<l.r[j].key;--j)
          {
         l.r[j+1]=l.r[j];//记录后移
          }
              l.r[j+1]=l.r[0];//插入到正确位置
     }
}
int main()
{
      sqlist l;
      int i;
      l.length=7;
      l.r[1].key=10;l.r[2].key=15;
      l.r[3].key=20;l.r[4].key=30;
      l.r[5].key=25;l.r[6].key=36;
      l.r[7].key=50;
      cout<<"排序后的顺序表:"<<endl;
      insertsort(l);
      for(i=1;i<l.length+1;i++)
      {
          printf("%4d",l.r[i].key);
      }
      cout<<endl<<endl;
      return 0;
搜索更多相关主题的帖子: include 关键字 记录 空间 
2016-09-28 21:46
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
得分:20 
if(l.r[i].key<l.r[i-1].key)//当<时,才需要将l.r[i].key插入有序序列中
         {
         l.r[0]=l.r[i];//复制为哨兵
          }
//第一次15>10,if不执行,下面的l.r[0].key没有被赋值,是个随机数
          for(j=i-1;l.r[0].key<l.r[j].key;--j)
          {
             l.r[j+1]=l.r[j];//记录后移
          }
         l.r[j+1]=l.r[0];//插入到正确位置


//当<时,才需要将l.r[i].key插入有序序列中     ----你这里不是写着吗????
if(l.r[i].key<l.r[i-1].key)//当<时,才需要将l.r[i].key插入有序序列中
{
         l.r[0]=l.r[i];//复制为哨兵

           for(j=i-1;l.r[0].key<l.r[j].key;--j)
          {
             l.r[j+1]=l.r[j];//记录后移
          }
         l.r[j+1]=l.r[0];//插入到正确位置
 }
         
收到的鲜花
  • 书生牛犊2016-09-29 19:15 送鲜花  5朵   附言:我很赞同
2016-09-29 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-469312-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076166 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved