在一列数据中,删除指定的值。输出每次删除后的数列。若数列中无待删除数据,则输出原数列。
输入格式:
在第1行输入一个整数n(0<n<=1000),表示数据个数;
在第2行输入n个整数,以空格分隔;
在第3行输入整数m,表示需要删除的值。
输出格式:
每次删除后,输出删除后的数列,每个数据后有一个空格。
每行输出一次删除后结果。
若数列中无待删除数据,则输出原数列。
输入样例 1:
10
5 8 7 12 17 15 3 7 7 10
7
输入样例 1:
10
5 8 7 12 17 15 3 7 7 10
7
输出样例 1:
5 8 12 17 15 3 7 7 10
5 8 12 17 15 3 7 10
5 8 12 17 15 3 10
输入样例 2:
10
5 8 7 12 17 15 3 7 7 10
6
输出样例 2:
5 8 7 12 17 15 3 7 7 10
#include<stdio.h>
int main()
{
int n , a[ 1000 ] , m , i , j , k ;
scanf( "%d" , &n ) ; //输入数列数据个数
for ( i = 0 ; i < n ; i++ ) //输入数列数
scanf( "%d" , &a[ i ] ) ;
scanf( "%d" , &m ) ; //输入要删除的数
int number = n ; //实际数据个数
for( j = 0 ; j < n ; j++ ) //一共需要和n个数比较
if( a[ j ] == m )
{
for( k = j ; k < number ; k++ )
a[ k ] = a[ k+1 ] ;
number-- , j-- ;
for ( i = 0 ; i < number ; i++ )//输出数列
printf( "%d " , a[ i ] ) ;
printf( "\n" ) ;
}
if( number == n ) //如果没有删除
for ( i = 0 ; i < n ; i++ )
printf( "%d " , a[ i ] ) ;
return 0 ;
}