| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1813 人关注过本帖
标题:用指针形式写一函数insert(a,i,k),把整型数k插入到数组a中的第i位
只看楼主 加入收藏
逗比
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-10-31
结帖率:60%
收藏
 问题点数:0 回复次数:3 
用指针形式写一函数insert(a,i,k),把整型数k插入到数组a中的第i位
请问insert(int *a,int i,int k) 函数里该怎么写呀?

#include<stdio.h>
int insert(int *a,int i,int k)

{
   

}
int main()
{
    int a[100],n,j,i,k;
    printf("请输入数组元素个数:\n");
    scanf("%d\n",&n);
    for(j=0;j<n;j++)
    {
        scanf("%d",&a[j]);
        
    }
   
    printf("请输入整型数 k 和要插入的位置 i:\n",k,i);
    scanf("%d %d",&k,&i);
    insert( a,i,k);
    for(j=0;j<n+1;j++)
    {
        printf("%5d",a[j]);
    }
}
搜索更多相关主题的帖子: insert 元素 
2015-05-23 20:09
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
你不需要一个参数指出数组长度吗?作为通用函数,可能要为不同长度的数组服务的。

能编个毛线衣吗?
2015-05-23 20:15
文心边城
Rank: 2
等 级:论坛游民
威 望:2
帖 子:98
专家分:67
注 册:2005-12-13
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

struct Arr
{
    int * pBase;//存储的是数组的第一个元素的地址
    int len;    //数组包含的最大元素的个数
    int cnt;     //当前数组有效元素的个数
};

void ini_arr(struct Arr *,int);
void show_arr(struct Arr *);
bool is_empty(struct Arr *);
bool is_full(struct Arr *);
bool insert_arr(struct Arr *,int ,int);


int main(void)
{
    struct Arr arr;
    ini_arr(&arr,6);
    insert_arr(&arr,1,99);
    return 0;
}

void ini_arr(struct Arr *pArr,int length)
{
    pArr->pBase = (int *)malloc(sizeof(int)*length);
    if (NULL == pArr->pBase)
    {
        printf("动态分配内存失败!\n");
        exit(-1);  //终止整个程序
    }
    else
    {
        pArr->len = length;
        pArr->cnt = 0;
    }
    return;
}

bool is_empty(struct Arr * pArr)
{
    if(0 == pArr->cnt)
        return true;
    else
        return false;
}

bool is_full(struct Arr * pArr)
{
    if (pArr->cnt == pArr->len)
    {
        return true;
    }
    else
    {
        return false;
    }
}

void show_arr(struct Arr * pArr)
{
    if (is_empty(pArr))
    {
        printf("数组为空!\n");
    }
    else
    {
        for (int i = 0; i < pArr->cnt; ++i)
        
            printf("%d   ",pArr->pBase[i]);
        printf("\n");
    }
}


bool insert_arr(struct Arr * pArr,int pos,int val)
{
    int i;

    if(is_full(pArr))
        return false;

    if(pos<1 || pos>pArr->cnt+1)
        return false;

    for (i=pArr->cnt-1; i>=pos-1; --i)
    {
        pArr->pBase[i+1] = pArr->pBase[i];
    }
    pArr->pBase[pos-1] = val;
    pArr->cnt++;
    return true; 
}


你要先声明一个结构体
然后在结构体数组中进行操作,
你直接以a[j]的形式在C中是不允许的。
编译会出错。
因为你还没有动态分配内存

会写c c++ java php JS AS vb python
2015-05-23 21:01
逗比
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-10-31
收藏
得分:0 
回复 2楼 wmf2014
那么,该如何做呢?
2015-05-23 21:41
快速回复:用指针形式写一函数insert(a,i,k),把整型数k插入到数组a中的第i位
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027380 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved