精华内容
下载资源
问答
  • }else{ //找到比他大的,替换数组中元素数组中元素取出来保存 int tempNum=num[i]; num[i]=insertNum; insertNum=tempNum; } } //insert(num, 51); printf("插入数字后新数组为:\n"); for (int i=0; i printf(...

    #define N 7

    void insert(int n[N],int num);

    void insert(int n[N],int num){

    int i;

    for (i=0 ; i

    if (num>n[i]) {

    break;

    }

    }

    for (int j=N-1; j>=i; j--) {

    n[j+1]=n[j];

    }

    n[i]=num;

    }

    int main(int argc, const char * argv[]) {

    int num[7];

    printf("输入6个整数:");

    for (int i=0; i<6; i++) {

    scanf("%d",&num[i]);

    }

    insert(num, 51);

    printf("插入数字后新数组为:\n");

    for (int i=0; i<7; i++) {

    printf("%d ",num[i]);

    }

    printf("\n");

    return 0;

    }

    ```

    方法二:

    ```

    int main(int argc, const char * argv[]) {

    int num[N];

    printf("输入6个整数:");

    for (int i=0; i<6; i++) {

    scanf("%d",&num[i]);

    }

    int insertNum;

    printf("输入要插入的数字:");

    scanf("%d",&insertNum);

    for (int i=0; i

    if (insertNum<=num[i]) {

    continue;

    }else{

    //找到比他大的,替换数组中的元素,数组中元素取出来保存

    int tempNum=num[i];

    num[i]=insertNum;

    insertNum=tempNum;

    }

    }

    //insert(num, 51);

    printf("插入数字后新数组为:\n");

    for (int i=0; i

    printf("%d ",num[i]);

    }

    printf("\n");

    return 0;

    }

    展开全文
  • 数组不擅长插入(添加)和删除元素数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要后移;而删除一个元素时,删除点...

    数组不擅长插入(添加)和删除元素。数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移;而删除一个元素时,删除点后所有的元素全部都要向前移。

    插入算法

    # include

    int main(void)

    {

    int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215};

    int b[24]; //用来存放插入数字后的新数组, 因为又插入了一个值, 所以长度为24

    int Index; //插入值的下标, Index是“下标”的英文单词

    int num; //插入的值

    int i; //循环变量

    printf("请输入插入值的下标:");

    scanf("%d", &Index);

    printf("请输入插入的数值:");

    scanf("%d", &num);

    for (i=0; i<24; ++i)

    {

    if (i < Index)

    {

    b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所放的位置不变*/

    }

    else if (i == Index)

    {

    b[i] = num; //i等于Index时, 将插入值赋给数组b

    }

    else

    {

    b[i] = a[i-1]; /*因为插入了一个新的元素, 所以插入位置后的每一个元素所存放的位置都要向后移一位*/

    }

    }

    for (i=0; i<24; ++i)

    {

    printf("%d\x20", b[i]);

    }

    printf("\n");

    return 0;

    }

    输出结果是:

    请输入插入值的下标:10请输入插入的数值:22

    1 5 66 8 55 9 1 32 5 65 22 4 8 5 15 64 156 1564 15 1 8 9 7 215

    删除算法

    # include

    int main(void)

    {

    int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215};

    int b[22]; /*用来存放删除数字后的新数组, 因为删除了一个值, 所以长度为22*/

    int Index; //要删除的值的下标

    int i; //循环变量

    printf("请输入要删除的值的下标:");

    scanf("%d", &Index);

    for (i=0; i<23; ++i)

    {

    if (i < Index)

    {

    b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所存放的位置不变*/

    }

    else

    {

    b[i] = a[i+1]; /*删除值后面的元素都往前移一位, 要删除的值直接被覆盖*/

    }

    }

    for (i=0; i<22; ++i)

    {

    printf("%d\x20", b[i]); // \x20表示空格

    }

    printf("\n");

    return 0;

    }

    输出结果是:

    请输入要删除的值的下标:5

    1 5 66 8 55 1 32 5 65 4 8 5 15 64 156 1564 15 1 8 9 7 215

    实例

    37, 49, 51, 61。设计程序对数组中的数据实现一次删除及插入操作:

    利用getchar()函数接收键盘输入:

    ● 当输入字符'D'时,接收键盘输入一个数组中存在的整数n,并对数组中存在的该整数进行删除,要求删除后的数组各元素仍按照从小到大的顺序排列。

    要求:不使用冒泡法或选择法实现删除数据后的排序操作。

    ● 当输入字符'I'时,接收键盘输入一个数组中不存在的整数m,并将该整数m插入到数组中,要求插入后的数组各元素仍按照从小到大的顺序排列。

    要求:不使用冒泡法或选择法实现插入数据后的排序操作。

    样例输入和输出:

    数组排序后的结果为:5, 9, 11, 16, 24, 34, 37, 49, 51, 61

    请输入需要进行的操作(插入'I',删除'D'):D

    请输入需要删除的整数:9

    删除后的数组为:5, 11, 16, 24, 34, 37, 49, 51, 61

    请输入需要进行的操作(插入'I',删除'D'):I

    请输入需要插入的整数:13

    插入后的数组为:5, 11, 13, 16, 24, 34, 37, 49, 51, 61

    #include

    int main()

    {

    int a[10] = { 5, 9, 11, 16, 24, 34, 37, 49, 51, 61 };

    int i = 0,n=0,k=0;

    char get;

    for (i = 0; i < 10; i++)

    printf("%3d", a[i]);

    printf("\n");

    printf("请输入需要进行的操作(插入‘I',删除‘D')\n");

    get = getchar();

    getchar();

    if (get=='D')

    {

    printf("请输入要删除的整数:\n");

    n = getchar();

    getchar();

    n -= 48;

    for (i = 0; i < 10; i++)

    {

    if (a[i]==n)

    {

    for (; i < 10; i++)

    {

    a[i] = a[i + 1];

    }

    a[9] = 0;

    break;

    }

    }

    for (i = 0; i < 9; i++)

    printf("%3d", a[i]);

    printf("\n");

    }

    printf("请输入需要进行的操作(插入‘I',删除‘D')\n");

    get = getchar();

    getchar();

    if (get='I')

    {

    printf("请输入要插入的整数:\n");

    scanf_s("%d", &n); //注意陷阱,不能用getchar(),因为13其实是两个字符,回车之后,n只吸收了‘1',所以只能用scanf_s().

    for (i = 0; i < 10; i++)

    {

    if (a[i] < n&&n < a[i + 1])

    {

    k = i;

    for (i = 8; i > k; i--)

    {

    a[i+1] = a[i];

    }

    a[k+1] = n;

    break;

    }

    }

    for (i = 0; i < 10; i++)

    printf("%3d", a[i]);

    }

    return 0;

    }

    到此这篇关于C语言数组添加和删除元素的实现的文章就介绍到这了,更多相关C语言数组添加和删除元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • 一种简单的方法是添加第二个数组(最初所有值都设置为0),并且每当处理一个数字时,都标记该元素出现的所有位置.现在,在处理元素之前,请检查是否已经处理过,如果是这样,则不执行任何操作.另外,尝试正确缩进代码:)...

    代码的问题在于,您需要重新处理已经处理过的数字.因此,如果在位置0处出现1,在位置5处再次发生1,那么当您到达循环中的位置时,将再次在位置5处理1.

    因此,您需要一种确定号码是否已被处理的方法.一种简单的方法是添加第二个数组(最初所有值都设置为0),并且每当处理一个数字时,都标记该元素出现的所有位置.现在,在处理元素之前,请检查是否已经处理过,如果是这样,则不执行任何操作.

    另外,尝试正确缩进代码:)

    C代码:

    int main( void ) {

    const int N = 10;

    int A[N];

    for(int i = 0; i < N; i++)

    cin >> A[i];

    int seen[N];

    for(int i = 0; i < N; i++)

    seen[i] = 0;

    for(int i = 0; i < N; i++) {

    if(seen[i] == 0) {

    int count = 0;

    for(int j = i; j < N; j++)

    if(A[j] == A[i]) {

    count += 1;

    seen[j] = 1;

    }

    cout << A[i] << " occurs " << count << " times" << endl;

    }

    }

    return 0;

    }

    展开全文
  • 数组不擅长插入(添加)和删除元素数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要后移;而删除一个元素时,删除点...

    数组不擅长插入(添加)和删除元素。数组的优点在于它是连续的,所以查找数据速度很快。但这也是它的一个缺点。正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移;而删除一个元素时,删除点后所有的元素全部都要向前移。

    插入算法

    # include int main(void) { int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215}; int b[24]; //用来存放插入数字后的新数组, 因为又插入了一个值, 所以长度为24 int Index; //插入值的下标, Index是“下标”的英文单词 int num; //插入的值 int i; //循环变量 printf("请输入插入值的下标:"); scanf("%d", &Index); printf("请输入插入的数值:"); scanf("%d", &num); for (i=0; i<24; ++i) { if (i < Index) { b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所放的位置不变*/ } else if (i == Index) { b[i] = num; //i等于Index时, 将插入值赋给数组b } else { b[i] = a[i-1]; /*因为插入了一个新的元素, 所以插入位置后的每一个元素所存放的位置都要向后移一位*/ } } for (i=0; i<24; ++i) { printf("%dx20", b[i]); } printf("n"); return 0; }

    输出结果是:

    请输入插入值的下标:10请输入插入的数值:22

    1 5 66 8 55 9 1 32 5 65 22 4 8 5 15 64 156 1564 15 1 8 9 7 215

    删除算法

    # include int main(void) { int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215}; int b[22]; /*用来存放删除数字后的新数组, 因为删除了一个值, 所以长度为22*/ int Index; //要删除的值的下标 int i; //循环变量 printf("请输入要删除的值的下标:"); scanf("%d", &Index); for (i=0; i<23; ++i) { if (i < Index) { b[i] = a[i]; /*循环变量i小于插入值位置Index时, 每一个元素所存放的位置不变*/ } else { b[i] = a[i+1]; /*删除值后面的元素都往前移一位, 要删除的值直接被覆盖*/ } } for (i=0; i<22; ++i) { printf("%dx20", b[i]); // x20表示空格 } printf("n"); return 0; }

    输出结果是:

    请输入要删除的值的下标:5

    1 5 66 8 55 1 32 5 65 4 8 5 15 64 156 1564 15 1 8 9 7 215

    展开全文
  • 通过数组的push方式添加元素通过数组的下标方式添加元素 示例 var arr=[]; arr.push('a');//第一种方式,往数组末尾添加一个字符a arr[arr.length]='a';//第二种方式。关于c语言数组 如何在一个数组尾部添加新的元素...
  • c语言数组数组名An array is a variable that stores multiple values. 数组是存储多个值的变量。 Every value in the array, in C, must have the same type. This means you will have arrays of int values, ...
  • C语言数组元素的插入

    千次阅读 2020-10-29 09:59:30
    对每个元素进行遍历进行比较,如果符合条件,则将其后面的元素向后移移位,然后在当前位置插入元素。 #include<stdio.h> int a[9] = {2,3,5,9,15,19,25,29}; int main() { int pos; scanf("%d",&pos); ...
  • 我现在实现的动态数组元素,实际上并没有连续内存地址,我不知该怎么处理能让元素地址连续。我的动态数组定义:typedefstructDArrayDArray;structDArray{void**data;uintcapacity;uintdata_size;};数组创建代码:...
  • C语言数组如何插入元素

    千次阅读 2021-03-03 13:28:59
    C语言数组如何插入元素 int *arr; int value = 0; arr = (int*) malloc(100 * sizeof(int)); //这种方式可以 arr[i] = value; //这种方式也可以 *(arr+i) = value
  • C语言字符数组

    2019-12-10 16:10:17
    因为要定义的是字符数组,所以在数组标识符钱所用的类型是char,后面括号表示的是数组元素的数量。 例如,定义一个字符数组 a char a[5]; 其中,a表示数组的标识符,5表示数组总包含5个字符类型的变量元素。 2、...
  • 向数组末尾添加元素的方式

    千次阅读 2020-02-21 22:35:24
    实现向数组末尾追加一个元素的多种方式 1.可以利用数组的长度和索引向数组末尾追加一个元素` //定义一个数组 var arr=[]; //增加数组的长度 arr.length=5; console.log(arr); //[empty × 5] //利用索引...
  • c语言_数组

    2020-06-09 22:56:35
    下标 用来表示数组中的某一个元素 例如 int arr[10]; arr[1]代表数组的第二个元素 数组下标是从0开始的 到数组元素个数-1 数组下标越界:超出了数组元素个数的下标,如果操作越界数据会出现程序错误 1、乱码结果 2、...
  • C语言复习数组

    2020-08-22 19:02:18
    当赋值的元素少于数组总体元素的时候,剩余的元素自动初始化为 0: 对于short、int、long,就是整数 0; 对于char,就是字符 ‘\0’; 对于float、double,就是小数 0.0。 没赋值的都为0 根据 ASCII 码表,字符’\0...
  • C语言数组

    2014-02-16 15:27:32
    注:1)常量表达式可以包括常量和符号常量.int a[3+5]是合法的,int a[n]是不合法的,C语言不允许对数组的大小作动态定义 2)如果在被调用的函数(不包括主函数)定义数组,起长度可以是变量或非常量表达式,...
  • C语言数组详解

    多人点赞 2021-08-04 13:42:54
    文章目录数组的定义一维数组的创建和初始化数组的创建数组的初始化一维数组的使用一维数组在内存的存储二维数组的创建和初始化二维数组的创建二维数组的初始化二维数组的使用二维数组在内存的存储数组作为函数...
  • C语言动态添加数组元素

    万次阅读 2017-01-24 12:08:41
    有时候需要用数组实现List功能,普通静态数组长度被固定无法动态...但数组元素超过10个之后想再添加元素,直接这样写: *(array+10) = x; 虽然也可以正常编译执行,但这是个错误写法,因为我们只为array分配了array
  • C语言——数组

    2020-04-04 22:05:55
    一维数组 初始化方式: int array[] = {1,2,3,4,5}; √ int array[5]; array[] = {1,2,3,4,5}; × 如果初始化数组时对所有变量进行赋值,则可以不指定数组的长度。指定数组长度时,对于未赋值的变量,则自赋值为...
  • 1. 字符数组的定义和初始化初始化字符数组的最简单方法是将每个字符分配给数组中的每个元素.char str [10] = {'I',','a','m',','h','a','p','p','y'}; <也就是说,将10个字符分配给str [0]至str [9] 10...
  • c语言-数组学习总结(2)C语言字符数组和字符串详解字符串结束标志(划重点)字符串长度 C语言字符数组和字符串详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符...
  • 向数组中插入元素

    2014-04-15 21:30:31
    Visual C++,把数组元素位置进行变动,把新的元素插入到数组中
  • C语言-数组

    2014-10-23 17:45:45
    数组 定义数组:Char a[10];,如果定义数组的时候不进行初始化,数组元素的值是未知的。
  • C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的...指针也是C语言中的一个很优秀灵活的结构,对它的了解也是必不可少的。我们一般都认为数组是一维的数据存储结构,因为二...
  • 其中,ARRAY_SIZE表示数组的最大长度len表示数组的当前长度,其实也可以表示为数组最后一个元素的下标(last),没有多大区别,凭个人喜好。二. 初始化操作void ArrayInit(MyArray *arr){int i;...
  • C语言数组反转

    2021-05-04 18:21:27
    大概来写一写数组反转添加上自己的理解注释。 #include <stdio.h> #define N 6 int main() { int a[N] = {0,1,2,3,4,5}; int i; int t; int j; //反转算法 for(i=0;i<N/2;i++) { t = a[i]; a[i]...
  • 今天看代码的时候无意看到了一个检测数组越界的代码段:if (size > 0) {if (str < end)*str = '\0';elseend[-1] = '\0';其中end是定义的内存空间的结束位置,如果访问越界了,就在结束前一个位置添加一个...
  • 记住以下关于指针和数组的四句话,基本就能理解数组和指针的转换关系。 1)一重指针指向普通变量;二重指针指向一重指针;三重指针指向二重指针; 2)指针可以通过左取* 或者右取[]来...2、数组名是指向首元素的指...
  • 字符数组和字符串字符数组字符串结束标志字符串长度 字符数组 定义:用来存放字符的数组称为字符数组。 char a[10];//一维字符数组 char b[5][10];//二维字符数组 ...在C语言中,没有专门的字符串变量,没有St
  • 数组对象在元素之间没有填充(前后),因此数组的地址和数组的第一个元素的地址是相同的。即:(void*)a==(void*)&a它到底做了什么int(*p)[3];定义指向数组的指针,我知道,但是,指向数组的指针与指向数组的第一...
  • c语言字符数组及使用方法

    千次阅读 多人点赞 2020-04-17 08:28:23
    c语言字符串及使用方法一、字符数组和字符串二、字符数组的输入三、字符数组的输出四、C 语言字符串处理函数1、字符串连接函数 strcat() 一、字符数组和字符串 用来存放字符的数组称为字符数组,例如: 1. char a...
  • C语言 字符数组 和 字符串 详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a','m'}; // 给部分数组元素...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,322
精华内容 18,928
关键字:

c语言向数组中添加元素

c语言 订阅