首页 > 编程语言 >终于使用c++、结构体,函数实现简单数组元素的插入

终于使用c++、结构体,函数实现简单数组元素的插入

时间:2024-09-05 19:36:26浏览次数:10  
标签:arr int c++ MyArray 插入 myArray 数组

include

using namespace std;

// 定义结构体
struct MyArray {
int arr[100]; // 数组,假设最大长度为100
int n; // 数组当前元素数量
};
//输入函数
void scanf(MyArray& myArray, int& x, int& y)
{
cin >> myArray.n;
for (int i = 0; i < myArray.n; i++)
{
cin >> myArray.arr[i];
}
cin >> x;
cin >> y;
}
// 插入函数,作为结构体外部的成员函数
void insert(MyArray& myArray, int x, int y) {
if (x < 0 || x > myArray.n || myArray.n >= 100) {
// 处理错误情况,例如位置无效或数组已满
cout << "无效位置或者数组已满" << endl;
}
// 将从插入位置开始的元素向后移动一位
for (int i = myArray.n; i >= x; i--) {
myArray.arr[i] = myArray.arr[i - 1];
}
// 在指定位置插入新值
myArray.arr[x - 1] = y;
// 更新数组大小
myArray.n++;
}

// 打印函数,作为结构体外部的成员函数
void print(const MyArray& myArray) {
for (int i = 0; i < myArray.n; i++) {
cout << myArray.arr[i] << " ";
}
cout << endl;
}
int main() {
MyArray myArray; // 创建MyArray实例
int y = 0;
int x = 0;
scanf(myArray, x, y);
// 在指定位置插入新值
insert(myArray, x, y);
// 打印数组
print(myArray);
return 0;
}

标签:arr,int,c++,MyArray,插入,myArray,数组
From: https://www.cnblogs.com/crucials/p/18399135

相关文章

  • 深度解析C++中函数重载与引用
    ......
  • 二维数组根据某个字段去重并统计个数
    publicfunctioncensus(){$data=$this->request->post("params/a");//$data=[//['name'=>'Alice','specId'=>25],//['name'......
  • C++ STL queue容器——队列
    queue容器基本概念queue是一种**先进先出的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。queue容器没有迭代器,所有元素进出都必须符合“先进先出”条件,只有顶端的元素才有机会被外界取用,所以也不提供遍历功能。queue容器常用操作构造函数queue<T>qu......
  • c++遍历数组的多种方式
    方法一:普通的for循环for(inti=0;i<sizeof(a)/sizeof(a[0]);i++){cout<<a[i]<<"";}方法二:指针数组int*p[len];for(inti=0;i<len;i++){p[i]=&a[i];cout<<*p[i];}———————————————......
  • Qt C++设计模式->策略模式
    **策略模式(StrategyPattern)**是一种行为型设计模式,它定义了一系列算法,将每一个算法封装起来,并使它们可以互相替换,策略模式让算法可以独立于使用它的客户端而变化。这意味着,客户端可以根据需要动态选择使用哪种算法,而不需要修改算法的实现。策略模式的主要组成部分策略接......
  • C++ STL stack容器——栈
    stack容器基本概念stack是一种先进后出的数据结构,它只有一个出口,形式如下图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何地方可以存取stack的娶她元素。换句话说,stack不允许有遍历行为。元素推入栈的操作称为push,将元素推出栈的操作称为pop。st......
  • 【数据结构】排序算法系列——插入排序(附源码+图解)
    插入排序算法思想插入排序的算法思想其实很容易理解,它秉持着一个不变的循环:比较->交换->比较->交换…因为我们排序最终的目的是要得到递增或者递减的数据,那么在原有的数据中,我们可以将数据依次两两进行比较:如果是升序,那么就将较小的放在较大的前面如果是降序,那么就将较大......
  • C++程序的发布部署方式及缺失依赖库dll的解决方法
    主要对Windows平台上C++项目开发过程中库目录进行梳理及程序发布要注意的相关事项进行总结,希望对其他开发者有一定的借鉴意义。1.问题的提出在最近的项目中,主要工作是为SketcchUp平台开发基于Ruby的扩展功能库,这种库文件是以.so为后缀的形式提供,用C++语言来编写实现。当我在自己......
  • C++ 使用终端GDB调试复杂项目中Segmentation Fault 和 std::bad_alloc问题
            近期在公司虚拟机上写代码遇到SegmentationFault和std::bad_alloc问题,但是项目庞大,在不了解功能、代码连接关系的时候很难追踪具体是什么地方出了问题。网络上许多关于GDB的教程仅仅停留在简单的示例中的调试,对于复杂的项目结构(多文件,多作用域,......)来说显......
  • C++(for)
    目录1.经典的for循环2.基于范围的for循环(C++11引入)3.无限for循环4.嵌套for循环5.使用continue和break控制循环流总结C++中有多种形式的for循环,每种形式适合不同的应用场景。1.经典的for循环这是C++中最基础的循环类型,由三部分组成:初始化、条件、......