【问题描述】
编写一个函数,利用指针实现保存输入的9个数中所有的奇数并输出,若没有奇数则输出NO。
要求:
1、不在子函数中输出。
2、不能修改指定的子函数:
void GetOdd(int a[],int *b,int *m)
【输入形式】
从键盘输入9个整数
【输出形式】
输出所有的奇数
【样例输入1】
1 4 7 2 5 8 3 6 9
【样例输出1】
1 7 5 3 9
【样例输入2】
2 2 2 2 2 2 2 2 2
【样例输出2】
NO
#include<stdio.h>
void GetOdd(int a[],int *b,int *m)
{
int i,c=0;//c用于记录有几个奇数
for(i=0;i<9;i++)
{
if(a[i]%2!=0)
{
*(b++)=a[i];//将奇数赋值给指针b
c++;
*m=c;
}
}
}
int main ()
{
int a[9],i,c=0,d[10];
for(i=0;i<9;i++)
scanf("%d",&a[i]);
int *b=d;//不能说*b=d[10]
int *m=&c;
GetOdd(a,d,m);
if(c!=0)
{
for(i=0;i<c;i++)//i<*m也可以
{
printf("%d ",d[i]);
}
}
else printf("NO");
return 0;
}