
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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)