利用指针完成对一个数组中大于指定数据的过滤,并将过滤后的数据存储并输出。
input
输入数据有多组,每组第一行先输入两个整数n和x,5<=n<=100,x为500以内的整数;第二行输入n个1000以内的整数。
output
对于每组输入的n个整数,编写函数保存并输出n个数中不小于x的所有整数。输出结果为1行。没有符合要求的不输出。数据之间用1个空格,最后1个数据直接换行。
输入输出说明:
input
10 25
89 76 23 15 98 76 125 -6 12 31
5 -6
34 -3 -12 9 2
output
89 76 98 76 125 31
34 -3 9 2
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
void output(int n,int *p)
{
int i;
for(i=0;i<n-1;i++)
printf("%d ",*p++);
printf("%d\n",*p);
}
{
int i;
for(i=0;i<n-1;i++)
printf("%d ",*p++);
printf("%d\n",*p);
}
int copy_x(int n,int *p,int *q,int x)
{ int i,j=0;
for(i=0;i<n;i++){
if(*p>=x){*(q+j)=*p;
j++;
}
p++;
{ int i,j=0;
for(i=0;i<n;i++){
if(*p>=x){*(q+j)=*p;
j++;
}
p++;
}
return j;
return j;
}
int main()
{
int a[100],b[100],mn,mx,mm,i;
int *p;
while(scanf("%d%d",&mn,&mx)!=EOF)
{
p=a;
for(i=0;i<mn;i++)
scanf("%d",p++);
mm=copy_x(mn,a,b,mx);
output(mm,b);
{
int a[100],b[100],mn,mx,mm,i;
int *p;
while(scanf("%d%d",&mn,&mx)!=EOF)
{
p=a;
for(i=0;i<mn;i++)
scanf("%d",p++);
mm=copy_x(mn,a,b,mx);
output(mm,b);
}
return 0;
}
return 0;
}