急!c语言对数组元素的删除,添加 *** 作

急!c语言对数组元素的删除,添加 *** 作,第1张

删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度。

void rmv(int *ptr,int in,const unsigned int n)

{

unsigned int i

for (i=ini<n-1i++) {

*(ptr+i)=*(ptr+i+1)

}

realloc(ptr,sizeof(int)*(n-1))

}

-----------------------------------------------

插入函数,在整形数组ptr中的ptr[in]之前插入x,n是原数组的长度

void rin(int *ptr,int in,int x,const unsigned int n)

{

unsigned int i

realloc(ptr,sizeof(int)*(n+1))

for (i=ni>ini--) {

*(ptr+i)=*(ptr+i-1)

}

ptr[in]=x

}

需要包含stdlib.h头文件。

示例:

//---------------------------------------------------------------------------

#include <stdio.h>

#include <stdlib.h>

void rmv(int *ptr,int in,const unsigned int n)

{

unsigned int i

for (i=ini<n-1i++) {

*(ptr+i)=*(ptr+i+1)

}

realloc(ptr,sizeof(int)*(n-1))

}

void rin(int *ptr,int in,int x,const unsigned int n)

{

unsigned int i

realloc(ptr,sizeof(int)*(n+1))

for (i=ni>ini--) {

*(ptr+i)=*(ptr+i-1)

}

ptr[in]=x

}

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

{

int *p,i

p=calloc(6,sizeof(int))

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

p[i]=i

}

*(p+2)=124

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

printf("%d ",p[i])

}

putchar('\n')

rmv(p,2,6)

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

printf("%d ",p[i])

}

rin(p,2,258,5)

putchar('\n')

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

printf("%d ",p[i])

}

system("pause")

free(p)

return 0

}

//---------------------------------------------------------------------------

#include<stdio.h>

#define MAX 50

int insert(int a[],int n,int i,int x)

{

    int j

    if(n+1>MAX)

        printf("无插入空间\n")      //数组只能存MAX个数

    else if(i<1||i>n+1)

        printf("插入位置非法\n")//插入位置的范围为1..n+1

    else

    {

        for(j=n-1j>i-2j--)

            a[j+1]=a[j]    //将数组中i位置及其后面的数,依次向后移动一格

        a[i-1]=x           //在i位置插入x

        n++       

    }

    return n         //返回当前数组大小

}

int del(int a[],int n,int i)

{

    int j

    if(i<1||i>n)

        printf("删除位置非法\n")

    else

    {

        for(j=i-1j<n-1j++)

            a[j] = a[j+1]

        n--

    }

    return n

}

int search(int a[],int n,int x)

{

    int i

    for(i=0i<ni++)

    {

        if(a[i]==x)

            return i+1

    }

    return -1

}

void printArray(int a[],int n)

{

    int i

    for(i=0i++)

    {

        if(i==n-1)

        {

            printf("%d\n",a[i])

            break

        }

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

    }

}

void main()

{

    int n,i,a[MAX]

    int index,x

    printf("输入数组中的元素个数\n")

    scanf("%d",&n)

    for(i=0i<ni++)

        scanf("%d",&a[i])

    printf("请输入要插入的位置和插入的数\n")

    scanf("%d %d",&index,&x)  

    n = insert(a,n,index,x)

    printArray(a,n)

    printf("请输入要删除元素的位置\n")

    scanf("%d",&index)

    n = del(a,n,index)

    printArray(a,n)

    printf("请输入要查询的元素\n")

    scanf("%d",&x)

    i = search(a,n,x)

    if(i!=-1)

        printf("%d的位置:%d\n",x,i)

    else

        printf("未找到%d\n",x)

}

望采纳~

以下程序通过VC6.0的编译,作用是将你输入的整数转换为 2 进制数(通过辅助栈实现的,过程中用到了你所要求的方法)。

#include "stdio.h"

#include "stdlib.h"

#define MAX 50

#define OK 1

#define ERROR 0

#define YES 1

#define NO 0

typedef int ElemType

typedef int Status

typedef struct tagStack{

ElemType data[MAX]

int top

}Stack

void InitStack(Stack *s){

s->top=-1

}

Status isEmpty(Stack *s){

if(s->top==-1) return YES

return NO

}

Status Push(Stack *s,ElemType elme){

if(s->top>MAX)return ERROR

s->top++

s->data[s->top]=elme

return OK

}

ElemType Pop(Stack *s){

if(s->top==-1) return -1

return s->data[s->top--]

}

int main(void){

int flag

int b

ElemType elemy

Stack mystack

InitStack(&mystack)

printf("Input number please:\n")

scanf("%d",&flag)

while(flag<0){

printf("You must input a number(>0)\n")

scanf("%d",&flag)

}

while(flag!=0){

b=flag%2

if(Push(&mystack,b)==ERROR){

printf("ERROR\n")

break

}

flag=flag/2

}

printf("\n")

while(isEmpty(&mystack)!=YES){

elemy=Pop(&mystack)

printf("%d ",elemy)

}

printf("\n")

return 0

}

如输入整数65,以下是执行结果:

Input number please:

65

1 0 0 0 0 0 1

Press any key to continue


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11441912.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存