当前位置: 首页 > news >正文

数据结构-顺序表-数值统计

题目:

https://acm.hdu.edu.cn/showproblem.php?pid=2008 

 解答:

#include <iostream>
using namespace std;#define SLDataType double  struct Sequlist{SLDataType* array;int size;int capacity;
};//********************顺序表初始化***********/
void InitSequlist(Sequlist* sl, int capacity) {sl->array = new SLDataType[capacity];sl->size = 0;sl->capacity = capacity;
}//********************顺序表销毁************/
void DestorySequlist(Sequlist* sl) {delete[] sl->array;
}//**********************获取顺序表长度******//
int GetSequlistLength(Sequlist* sl) {return sl->size;
}//**********************判断顺序表是否为空***//
bool SequlistEmpty(Sequlist* sl) {return sl->size == 0;
}//***************顺序表的插入********** */
void insertSequlist(Sequlist* sl, int pos, SLDataType x) {//判断pos是否合法if(pos < 0 || pos > sl->size){printf("插入位置不合法\n");}//判断是否需要增容if(sl->size == sl->capacity){int newCapacity = sl->capacity * 2;SLDataType* newArry = new SLDataType[newCapacity];for(int i = 0;i < sl->size;i++){newArry[i] = sl->array[i];}delete[] sl->array;sl->array = newArry;sl->capacity = newCapacity;}//往后挪数据for (int i = sl->size; i > pos; i--){sl->array[i] = sl->array[i-1];}//插入数据sl->array[pos] = x;//更新大小sl->size++;
}//***************************顺序表的删除元素 */
void deleteSequlist(Sequlist* sl, int pos){//判断pos是否合法if(pos < 0 || pos > sl->size){printf("插入位置不合法\n");}//删除元素for(int i = pos;i < sl->size;i++){sl->array[i] = sl->array[i+1];}//更新大小sl->size--;
}//**************************顺序表查找元素下标索引 */
int findSequlistIndex(Sequlist* sl, int x){for (int i = 0; i < sl->size; i++){if (sl->array[i] == x){return i;}}return -1;
}//************************顺序表查找元素 */
double getSequlist(Sequlist* sl, int pos){//判断pos是否合法if(pos < 0 || pos > sl->size){printf("插入位置不合法\n");}//得到元素return sl->array[pos];
}//***********************更新数据********//
void updateSequlist(Sequlist* sl, int pos, SLDataType x){//判断pos是否合法if(pos < 0 || pos > sl->size){printf("插入位置不合法\n");}//更新元素sl->array[pos] = x;
}
int main()
{int n;while(cin>>n && n){Sequlist sl;InitSequlist(&sl,1);for (int i = 0; i < n; i++){double x;cin>>x;insertSequlist(&sl,i,x);}int cnt1 = 0,cnt2 = 0,cnt3 = 0;for (int i = 0; i < sl.size; i++){double y;y = getSequlist(&sl,i);if (y>0){cnt1++;}else if(y<0){cnt2++;}else{cnt3++;}}cout<<cnt2<<" "<<cnt3<<" "<<cnt1<<endl;}return 0;
}

遇到的问题:因为存在小数部分,所有全部返回值类型改成double类型

http://www.lqws.cn/news/458101.html

相关文章:

  • 「Linux文件及目录管理」硬链接与软连接
  • 学习笔记丨AR≠VR:透视沉浸式技术的“虚实象限”法则
  • c++系列之特殊类的设计
  • 在 macOS 上部署 Akash Network 的完整 Shell 脚本解决方案
  • GM DC Monitor v2.0 卸载教程
  • macOS - 安装微软雅黑字体
  • 湖北师范大学人工智能与计算机学院电子信息研究生课程《随机过程》第二次作业
  • [C/C++11]_[初级]_[使用正则表达式分组来获取动态字符串]
  • 详解Redis的内存淘汰策略
  • CSS Content符号编码大全
  • 【学习笔记】锁+死锁+gdb调试死锁
  • 详解Redis的过期策略
  • uniapp评价组件
  • 音视频之H.264的可伸缩编码SVC
  • 1.21SQLCipher 简介
  • 鸿蒙uvc预览
  • .docx 和 .doc 都是 Word 文档格式的区别
  • HCIP-华为VRP系统基础
  • Sentinel实现原理
  • 使用docker-compose安装kafka
  • 计算机——硬盘分区和格式化
  • C++11 GC Interface:从入门到精通
  • docker基础入门于应用的实践
  • 使用 OpenCV 和传统机器学习实现工业开关状态识别
  • RAG 升级之路:如何让问答机器人真正“智能”起来
  • iOS应用启动时间优化:通过多工具协作提升iOS App性能表现
  • 异常的处理
  • 云计算与5G:如何利用5G网络优化云平台的性能
  • 芋道源码 - 添加反向代理, 通过公网域名访问静态资源图片
  • 【国产AI服务器】全国产PCIE5.0交换板,替代博通89104/89144,支持海光、龙芯等平台