#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
int *insert(int *p,int N)
{
int a,c,i;
int *add;
//N=N+1;
scanf("%d%d",&a,&c);
if(a<1||a>N)
printf("插入位置无效");
else
{
N=N+1;
add=(int *)malloc(N*sizeof(int));
for(i=0;i<a-1;i++)
*(add+i)=*(p+i);
*(add+a-1)=c;
for(i++;i<N;i++)
*(add+i)=*(p+i-1);
for(i=0;i<N;i++)
printf("%d\t",*(add+i));
// p=add;
return add;}
}
int *del(int *p,int N)
{
int *red;
int c,i;
red=p;
scanf("%d",&c);
for(i=0;i<N;i++){
if(*(red+i)==c)
break;}
if(i==N)
printf("没有发现这个数");
else{
for(i;i<N-1;i++)
*(red+i)=*(p+i+1);
for(i=0;i<N-1;i++)
printf("%d\t",*(red+i));
// p=red;
return red;}
}
int *sort(int *p,int N)
{ int i,j,x;
int *t;
t=p;
for(i=0;i<N-1;i++)
for(j=0;j<N-i-1;j++)
if(*(t+j)>*(t+j+1))
{
x=*(t+j);
*(t+j)=*(t+1+j);
*(t+1+j)=x;
}
for(i=0;i<N;i++)
printf("%d\t",*(t+i));
return t;
}
int main()
{
int N,i,x;
int *p,*tail;
printf("请输入数组长度和数:\n");
scanf("%d",&N);
p=(int *)malloc(N*(sizeof(int)));
tail=p;
for(i=0;i<N;i++)
scanf("%d",p+i);
for(i=0;i<N;i++)
printf("%d\t",*(p+i));
printf("\n");
// p=sort(p,N);
printf("要排序请输入 1:\n要插入请输入2:\n要删除请输入3:\n结束请选择0:\n");
while(scanf("%d",&x)&&(x||0)){
switch(x){
case 1: p=sort(p,N);break;
case 2: p=insert(p,N);break;
case 3: if(tail!=p)N=N+1;p=del(p,N);break;
}
}
// p=insert(p,N);
//printf("%d",N);
// p=del(p,N);
system("pause");
}
#include<stdlib.h>
#include<malloc.h>
int *insert(int *p,int N)
{
int a,c,i;
int *add;
//N=N+1;
scanf("%d%d",&a,&c);
if(a<1||a>N)
printf("插入位置无效");
else
{
N=N+1;
add=(int *)malloc(N*sizeof(int));
for(i=0;i<a-1;i++)
*(add+i)=*(p+i);
*(add+a-1)=c;
for(i++;i<N;i++)
*(add+i)=*(p+i-1);
for(i=0;i<N;i++)
printf("%d\t",*(add+i));
// p=add;
return add;}
}
int *del(int *p,int N)
{
int *red;
int c,i;
red=p;
scanf("%d",&c);
for(i=0;i<N;i++){
if(*(red+i)==c)
break;}
if(i==N)
printf("没有发现这个数");
else{
for(i;i<N-1;i++)
*(red+i)=*(p+i+1);
for(i=0;i<N-1;i++)
printf("%d\t",*(red+i));
// p=red;
return red;}
}
int *sort(int *p,int N)
{ int i,j,x;
int *t;
t=p;
for(i=0;i<N-1;i++)
for(j=0;j<N-i-1;j++)
if(*(t+j)>*(t+j+1))
{
x=*(t+j);
*(t+j)=*(t+1+j);
*(t+1+j)=x;
}
for(i=0;i<N;i++)
printf("%d\t",*(t+i));
return t;
}
int main()
{
int N,i,x;
int *p,*tail;
printf("请输入数组长度和数:\n");
scanf("%d",&N);
p=(int *)malloc(N*(sizeof(int)));
tail=p;
for(i=0;i<N;i++)
scanf("%d",p+i);
for(i=0;i<N;i++)
printf("%d\t",*(p+i));
printf("\n");
// p=sort(p,N);
printf("要排序请输入 1:\n要插入请输入2:\n要删除请输入3:\n结束请选择0:\n");
while(scanf("%d",&x)&&(x||0)){
switch(x){
case 1: p=sort(p,N);break;
case 2: p=insert(p,N);break;
case 3: if(tail!=p)N=N+1;p=del(p,N);break;
}
}
// p=insert(p,N);
//printf("%d",N);
// p=del(p,N);
system("pause");
}