鱼C论坛

 找回密码
 立即注册
查看: 3185|回复: 1

[其他分类] C++:基于顺序存储结构的图书信息表的最贵图书的查找

[复制链接]
发表于 2021-9-30 13:38:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
废话不多说,直接上代码

                               
登录/注册后可看大图


  1. /***
  2. *author:LaoGu
  3. *time:2021/9/30
  4. *purpose:基于顺序存储结构的图书信息表的最贵图书的查找
  5. ***/
  6. #include<iostream>
  7. #include<string.h>

  8. using namespace std;

  9. #define OK 1
  10. #define OVERFLOW -2
  11. typedef int Status;
  12. #define MAXSIZE 10000

  13. typedef struct tagBook{
  14.   char no[20];
  15.   char name[50];
  16.   float price;
  17. }Book;

  18. typedef struct tagSqList{
  19.   Book *elem;
  20.   int length;
  21. }SqList;

  22. int main(){
  23.         //声明函数
  24.         Status InitList_Sq(SqList &L);
  25.         Status CreationList_Sq(SqList &L,char *no,char *name,float price);
  26.         Status PrintList_Sq(SqList L);

  27.         SqList L;   //定义L
  28.         InitList_Sq(L);   //初始化L

  29.         char no[20],name[50];
  30.         float price;

  31.         while(1){
  32.           cin>>no>>name>>price;
  33.           if(!strcmp(no,"0")&&!strcmp(name,"0")&&price == 0.0)
  34.                   break;
  35.           CreationList_Sq(L,no,name,price);   //存储书的信息
  36.         }
  37.         PrintList_Sq(L);   //查找并输出
  38.     return 0;
  39. }


  40. //初始化函数
  41. Status InitList_Sq(SqList &L){
  42.   L.elem = new Book[MAXSIZE];
  43.   if(!L.elem) exit(OVERFLOW);
  44.   L.length = 0;
  45.   return OK;
  46. }

  47. //存储函数
  48. Status CreationList_Sq(SqList &L,char *no,char *name,float price){
  49.         Book B;
  50.         strcpy(B.no,no);
  51.         strcpy(B.name,name);
  52.         B.price = price;
  53.         L.elem[L.length] = B;
  54.         L.length++;
  55.     return OK;
  56. }

  57. //查找函数并且输出
  58. Status PrintList_Sq(SqList L){
  59.         //查找
  60.         int N = L.length,maxnum=0;

  61.         SqList Bmax; //定义Bmax
  62.         InitList_Sq(Bmax); //初始化Bmax

  63.         float maxprice = L.elem[0].price;

  64.         //找出最高的价格
  65.         for(int i=1;i<N;i++)
  66.         {
  67.                 if(maxprice<L.elem[i].price){
  68.                   maxprice = L.elem[i].price;
  69.                 }
  70.         }

  71.     //将书的价格与这个价格比较,将最贵的书籍的信息存入Bmax.elem中
  72.         for(int j =0;j<N;j++){
  73.                 if(L.elem[j].price==maxprice){
  74.          Bmax.elem[maxnum] = L.elem[j];
  75.                   maxnum++;
  76.                 }
  77.         }

  78.         //输出
  79.         cout<<endl;  //先空一行

  80.         cout<<"maxnum: "<<maxnum<<endl;  //输出最高的价格书的数量

  81.         for (int k =0; k < maxnum;k++){
  82.       cout<<Bmax.elem[k].no<<"  "<<Bmax.elem[k].name<<"  ";
  83.              printf("%.2f\n",Bmax.elem[k].price);
  84.         }
  85.         return OK;
  86.   
  87. }
复制代码



                               
登录/注册后可看大图


运行结果如下:
1632979524(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-5 09:05:53 | 显示全部楼层
学习来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 01:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表