CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一个小算法问题,会的进来看看查询比较

楼主linuxchenyy(阿雨(linux,c/c++初学者,大虾们:抱拳~~久仰~))2005-06-04 20:22:44 在 C/C++ / C语言 提问

在链表中  
  比如有   9   8   7   6   5   4    
  这么几个数  
  我要实现这样的:  
  比如我输入   6  
  便输出   7   8   9(这三数不要求排序,如能排序也行)  
  并统计个数 (本例输出共3个)  
  输入9  
  便显示超出犯围  
   
   
  该如何实现      
  如有相似的源代码供参考更是感激不尽! 问题点数:20、回复次数:8Top

1 楼mccxj(老鼠不逛街)回复于 2005-06-04 20:25:50 得分 0

用双向链表。。。对于输入的数字进行查询。。找到之后反向访问节点。。并且逐个输出就可以了。。。Top

2 楼sunman1982(冥王星)回复于 2005-06-04 20:25:57 得分 0

遍历的时候   比较   大的就输出     否则跳过就好了啊,设置一个计数器,  
  不是很复杂的啊Top

3 楼sunman1982(冥王星)回复于 2005-06-04 20:30:00 得分 20

nodeType<int>*p;  
  p=new   nodeType<int>;  
  assert(p!=NULL);  
  p=head;  
  int   count;  
  while(p!=NULL)  
  {  
          p=p->link;  
          if(p->info>6)  
            {  
                      cout<<p->info<<"   ";  
                      count++;  
                      p=p->link;  
                          }  
          p=p->link;  
  }Top

4 楼linuxchenyy(阿雨(linux,c/c++初学者,大虾们:抱拳~~久仰~))回复于 2005-06-04 20:44:34 得分 0

struct   student  
  {  
  char   num[10];  
  char   name[20];  
  char   sex[4];  
  int   cgrade;  
  int   mgrade;  
   
  int   totle;  
  int   ave;  
  char   neartime[10];//最近更新时间  
  };  
  typedef   struct   node  
  {  
  struct   student   data;  
  struct   node   *next;  
  }Node,*Link;  
   
  ----  
  该如何按上述方法找到mgrade里面  
  随机输入一个数  如60  
  便输出所有大于60的数呢?Top

5 楼gogdo(草草)回复于 2005-06-04 21:00:46 得分 0

对不起发错了。!!!!!!!!!!!  
  Top

6 楼foochow(无聊,灌水......)回复于 2005-06-04 21:08:57 得分 0

很简单啊,是不是只要输出比6大的数字??Top

7 楼linuxchenyy(阿雨(linux,c/c++初学者,大虾们:抱拳~~久仰~))回复于 2005-06-04 21:12:52 得分 0

不是的呀,  
   
  6只是举的一个例子,  
  6是随机的~~  
  从键盘上输入的  
  就是一个查询,,  
  然后输出所有比它大的Top

8 楼linuxchenyy(阿雨(linux,c/c++初学者,大虾们:抱拳~~久仰~))回复于 2005-06-04 22:17:46 得分 0

void     Mgradesort(Link   l)     //按数学成绩查询  
  {  
  //Node   *r=l->next;  
  int   count=0;  
  int   a;  
  Node   *pm;  
  pm=l->next;  
  if(l==NULL)  
  {  
  printf("\n=====>没有资料可以查询~\n");  
  return;  
  }  
  while(l)  
  {  
        printf("请输入你想查询成绩的下线:");  
        scanf("%d",&a);  
  if(pm->data.mgrade>a)    
  {  
    printf("\t\t%s\t\t\t%d\n",pm->data.name,pm->data.mgrade);  
    count++;  
    pm=pm->next;  
    printf("\t\t\t\t\t一共有(%d)个\n",count);}  
    else    
    {   count==0;  
    printf("没有超过此分的数据!\n");  
    }  
    pm=l->next;  
    break;  
  }  
   
  printstart();//打印主菜单  
  }  
  -----------  
  这样写有错误吗?  
   
  我运行只能比较出一个数,无是无论有多少个超过输入的数,  
  它只输出一个数  
  并且统计也是一个  
   
  要怎么改才能实现呢?Top

相关问题

  • 求多条件查询算法
  • 复杂的查询算法,请帮忙
  • 请问一种查询算法
  • 菜鸟求个查询的算法~
  • 菜鸟求个查询的算法~
  • vc+ado访问sql数据库的查询算法??删除算法??
  • 小算法,不难
  • 小算法问题
  • 图像比较算法
  • 城市公交车线路查询算法!急!

关键词

  • 查询
  • pm
  • null
  • mgrade
  • 输出
  • 输入
  • node
  • 实现
  • printf
  • link

得分解答快速导航

  • 帖主:linuxchenyy
  • sunman1982

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo