#include <stdio.h>
#define MAX 100
int del(int [], int,int);
int main(void)
{
int a[MAX] = {0};
int i, k = 0, n, account;
scanf("%d", &n);
for (i = 0; i <n; i++)//2
{
scanf("%d", &a[i]);
}
scanf("%d", &account);
k=del(a, account, n); //2
if(k==-1)
{
printf("Error value!");
return;
}
for(i=0;i<k;i++) //2
{
printf("%d ",a[i]);
}
return 0;
}
int del(int a[], int account, int n)
{
int i,j,k=n;
for(i=0;i<n;i++)//2
{
if(account==a[i])//2
{
for(j=i;j<n;j++)//2
{
a[j]=a[j+1];//1
}
k--;//1
}
}
if(k!=n)
return k;
else
return -1;
}
某小区实行安全管理,分发给业主(共n户,5=<n<=300)出入门卡,为了更好的管理小区内进出人员,要求搬迁及退租的业主退回门卡,并在数据库内进行删除更新。请编程实现该功能
输入小区业主户数,门卡数据,一个搬迁及退租业主门卡数据,输出删除一个搬迁及退租业主后小区的门卡数据。删除后的数据顺序按照输入的顺序输出,无需排序调整。
输入数据格式:"%d"
输出数据格式:"%d "
当输入迁出门卡数据不存在时 则输出"Error value!"
建议使用给定的函数原型编写并使用函数。
函数原型:
int Del(int a[], int account, int n);
//数组a保存门卡编号数据,account为迁出小区的待删除的门卡数据,n为小区住户数
//成功删除迁出小区门卡数据,函数返回剩余业主户数;若待删除迁出数据不存在时,函数返回-1。
//要求:剩余业主数据在数组中必须按原始输入的业主数据顺序连续存储。
运行样例1:
12↙
4011↙
4032↙
5084↙
5081↙
4031↙
4063↙
6089↙
4153↙
4093↙
5163↙
4181↙
6124↙
4031↙
4011 4032 5084 5081 4063 6089 4153 4093 6124 5163 4181