当前位置: 首页 > 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.lryc.cn/news/572908.html

相关文章:

  • 如何自建服务器并开启公网IP:本地内网网址让外网访问详细教学
  • Nginx常见功能
  • 基于YOLO的语义分割实战(以猪的分割为例)
  • “地标界爱马仕”再启:世酒中菜联袂陈汇堂共筑新会陈皮顶奢产业
  • C++11 GC Interface:从入门到精通
  • 如何正确处理音频数据:16位整数与32位浮点数
  • JVM对象内存分配机制全解析
  • CSS Content符号编码大全
  • 「AI高校」| 《清华大学:AI赋能教育高考志愿填报工具使用指南》
  • 榕壹云婚恋相亲系统:ThinkPHP+UniApp打造高效婚配平台
  • c++set和pair的使用
  • joomla 使用nginx服务器只能打开首页,其他页面404的解决方案
  • win7上搭建FTP服务器步骤
  • OSI网络通信模型详解
  • I排序算法.go
  • 互感器铭牌图像识别系统
  • 【系统规划与管理师第二版】1.2 信息技术及其发展
  • 阿里巴巴开源的 分布式事务解决方案Seata
  • A028自动升降机+S71200+HMI+主电路图+外部接线图+流程图+IO分配表
  • HTTP与HTTPS深度解析:从明文传输到安全通信的演进之路
  • Hadoop 技术生态体系
  • 京运通601908,一只值得长期跟踪操作的波段投资标的,两个指标即可做好
  • 迅为RK3562开发板Android 设置系统默认不锁屏
  • [论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁
  • 游戏架构中的第三方SDK集成艺术:构建安全高效的接入体系
  • subprocess.check_output和stdout有什么不同 还有run和popen
  • Docker 常用运维命令
  • 【系统规划与管理师第二版】1.3 新一代信息技术及发展
  • React ahooks——useRequest
  • 空壳V3.0,免费10开!