以以下例子为参考,仿照该例子设计一个算法,实现删除下标为t的元素,调整删除算法,将n=0合理化。

#include<stdio.h>
#define M 1000

void out(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}

void del(int a[],int n)
{
int i,t;
printf("请输入要删除的下标 t=");
scanf("%d",&t);
if(t<0 || t>=n)
{printf("\n");printf("错误了!");return;}
else
for(i=0;i<n;i++)
{a[t+i]=a[t+i+1];}
printf("\n");
printf("删除后数组为:");
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
}

int main()
{
int a[M];
int i,n;
printf("输入n: ");
scanf("%d",&n);
if(n==0)
{printf("\n");printf("无法进行删除!");}
else
{
for(i=0;i<n;i++)
{
printf("输入 a[%d]: ",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("删除前数组为:");
out(a,n);
printf("\n");
del(a,n);
}
}