当前位置: 首页 > 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类型

相关文章:

  • 设计模式之单例模式-----实现单例模式的五种方式
  • 多模态大语言模型arxiv论文略读(130)
  • 人力资源战略重构,AI驱动高质量发展论坛顺利召开
  • @annotation:Spring AOP 的“精准定位器“
  • Qt5.15.2 可执行程序发布
  • Rust 学习笔记:关于 Unsafe Rust 的练习题
  • Java八股文——消息队列「场景篇」
  • VSCode1.101.1Win多语言语言编辑器便携版安装教程
  • 【工具教程】识别PDF中文字内容,根据文字内容对PDF批量重命名,提取识别PDF内容给图片重新命名的操作步骤和注意事项
  • uniapp评价组件
  • 从生活场景学透 JavaScript 原型与原型链
  • 微信小程序扫码添加音频播放报错{errCode:10001, errMsg:“errCode:602,err:error,not found param“}
  • VR 看房:突破成长痛点,展望未来趋势
  • YOLOv5 自定义模型 Android 部署完整指南
  • C++11 右值引用(Rvalue Reference)
  • uni-app-配合iOS App项目开发apple watch app
  • bit sbit sfr的区别
  • 【Pandas】pandas DataFrame squeeze
  • RISC-V物联网关,支持鸿蒙,T-Thread实时系统
  • Android 中 解析 XML 字符串的几种方式
  • 专门做照片书的网站/seochinazcom
  • 成都网站开发公司排名/外链代发公司
  • 内蒙住房和城乡建设部网站首页/友情链接是啥意思
  • 页面做的好看的网站/郑州网络营销排名
  • 武汉培训网站建设/如何做平台推广赚钱
  • 网站建设 宣传单/网页设计首页