编写函数,把数组中所有奇数放在另一个数组中返回.(假设数组的长度不超过50)

编写函数,把数组中所有奇数放在另一个数组中返回。(假设数组的长度不超过50)
要求在主函数中通过赋初值的方式定义原数组,并输出原数组,然后调用上述函数,得到只含有奇数的新数组,并输出新数组。两次输出数组调用同一个数组输出函数printdata(int *a,int n)进行输出。

第1个回答  2017-12-13
#include <stdio.h>
void printdata(int *a,int n)
{
    int *e=a+n;
    while(a<e) printf("%d ",*a++);
    printf("\n");
}

int get_odd(int *a, int n, int *b)
{
    int *e=a+n,*d=b;
    while(a<e)
    {
        if(*a%2==1) 
        {
            *d++=*a;
        }
        a++;
    }
    return d-b;
}
int main()
{
    int a[10] = {1,2,3,4,5,6,7,8,9,10},b[50];
    int l,i;
    printdata(a,10);
    l = get_odd(a,10,b);
    printdata(b,l);
    return 0;
}

本回答被网友采纳

编写函数,把数组中所有奇数放在另一个数组中返回
void f(int a[],int n){ int t=100, b[t],i,m=0;for (i=0;i<t;i++)if (a[i]%2==1){ b[m]=a[i];m++;} for (i=0;i<m;i++)printf ("%5d",b[i]);}

编写程序把长度为10的数组中所有的奇数和偶数分别存放在另外两个数组...
{ int i = 0, j = 0 , k = 0 , a[MAX] , odd[MAX], even[MAX] ;for( i = 0 ; i < MAX ; i ++ ) \/* 从键盘输入十个数,并存放于数组 a[MAX] 中 *\/ scanf("%d", &a[i] ) ;for( i = 0 ; i < MAX ; i ++ )odd[i] = -1 ; \/* 初始化用于存放奇数的...

把数组中的所有偶数放在另一个数组中,并排序在主函数调用函数,
include "stdio.h"int fun(int *p,int *q,int n){int i,j,k;for(n--;p[n]&1;n--)\/\/没有偶数返回0if(n<0)return 0;for(q[0]=p[n--],i=1;n>=0;n--)\/\/把偶数存入另一数组if(!(p[n]&1))q[i++]=p[n];for(n=i,i=0;i<n;i++){\/\/对偶数数组由小到大排序...

c语言从一个数组中随机取数并放入另一个数组中怎么写?
要从一个数组中随机抽取元素放入另一个数组,需遵循以下步骤。假设数组 arrSource 包含元素 a, c, b, d,目标数组为 arrDest,长度为 3。首先,使用 rand() 函数生成随机下标,范围为 0 到 3。取生成的随机数 mod 4,以确保结果在 0 到 3 之间。设此下标为 index,数组元素为 pick,即 pic...

将一个数组倒装入另一个数组中,用指针的c语言程序
4,5};int data2[3] = {0};int i = 0;if(sizeof(data1) < sizeof(data2))fun(data1,data2,sizeof(data1)\/4);else printf("目标数组内存长度不够\\n");\/\/输出数组 for(i = 0;i < sizeof(data2)\/4;i++){ printf("%d ",data2[i]);} printf("\\n");return 0;} ...

写一个方法,将一个整形数组中的偶数复制到另一个数组中,用java写。
int []arr = new int[n];\/\/n为你要定义的数组长度 int []arr_ = new int[n];static int j=0;for(int i=0;i<arr.lengh;i++){ if(arr[i]%2==0)arr_[j++]=arr[i];}

(1)定义一个整数类型数组a,数组的长度n<=50)以及数组的数据从键盘中输入...
int main(){ int n,a[50]={};int i,odd_num=0;float sum=0,average=0,odd_sum=0,odd_average=0;printf("输入数组长度: ");scanf("%d",&n);printf("输入元素: ");for (i=0;i<n;i++){ scanf("%d",&a[i]);sum=sum+a[i];if(a[i]%2==1){ odd_num++;odd_sum=...

...为15的一维数组,将奇数元素移到数组前面并将数组输出到屏幕,咋编程...
include "time.h"define N 15 int main(int argc,char *argv[]){ int a[N],i,j,k;srand((unsigned)time(NULL));for(i=0;i<N;i++)\/\/数组随机赋值 printf("%3d",a[i]=rand()%100);printf("\\n\\nAfter processing:\\n");for(i=0;i<N;i++){ if((a[i]&1)==0)for(j=...

c语言中,写一个函数,把数组中的元素反转输出
反转输出是比如a[5]={0,1,2,3,4}输出是a[5]={4,3,2,1,0}吗?如果是我理解的这样,那看下面吧 include <stdio.h>int main(){int a[6]={0,1,2,3,4,5};int i,n,temp;n=6;\/\/数组元素个数for(i=0;i<n\/2;i++){temp=a[i];a[i]=a[n-1-i];a[n-1-i]=temp;}...

2011年全国计算机等级考试2级C语言机试题库
请编写函数fun,函数的功能是:统计各年龄段的人数,N个年龄能过调用随机函数获得,并放在主函数的age 数组中:要求函数把0至9岁的年龄段的人数放在d[0]中,把10至19岁的年龄段的人数放在d[1]中,把20至29岁的年龄段的人数放在d[2]中,其余依次类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主...

相似回答