C语言编写函数,把数组中所有奇数放在另一个数组中返回,
发布网友
发布时间:2022-05-21 06:06
我来回答
共5个回答
热心网友
时间:2023-10-16 18:39
1.对2取余非零即为奇数
#include <stdio.h>
// 将src中奇数放入dst中,并返回奇数个数
int getOdd(int *dst, const int *src, int srcLen)
{
int len = 0;
for (int i = 0; i < srcLen; i++)
if (src[i] % 2 != 0) // 非0即为奇数
dst[len++] = src[i];
return len;
}
int main()
{
int a[10] = {0, 1, 2, 3, 4, -5, 6, 7, 8, -9}, b[10];
int len = getOdd(b, a, 10);
printf("Odd is: ");
for (int i = 0; i < len; i++)
printf("%d ", b[i]);
return 0;
}
热心网友
时间:2023-10-16 18:39
你是不是用错了, odds(a,n,b,m);m这个必须要是&m因为你的参数是一个指针变量,而且arrout(b,m);这里的m一直是0,根本输不出任何数,int *bn这个变量时要来保存有多少个奇数的,所以你下面的程序bn=&j;这个去掉,直接用 odds(a,n,b,&m);用m的地址,在for循环的外面即
for(j=0,i=0;i<an;i++)
if(a[i]%2!=0)
{b[j]=a[i];j++;}
*bn=j;这样,然后arrout(b,m);这样调用就正确了,因为j的值赋值给了m ,我这个是针对于你的原题修改一下的
热心网友
时间:2023-10-16 18:40
#include<stdio.h>
void odds(int *a,int an,int *b,int *bn);
void arrout(int w[],int m);
#define n 10
main()
{
int a[n]={15,96,54,76,25,64,31,21,35,91};
int b[n],m=0;
arrout(a,n);
odds(a,n,b,&m);
arrout(b,m);
}
void arrout(int w[],int m)
{
for(int i=0;i<m;i++)
printf("%4d",w[i]);
printf("\n");
}
void odds(int *a,int an,int *b,int *bn)
{
int i,j;
for(j=0,i=0;i<n;i++)
if(a[i]%2!=0)
{
b[j]=a[i];
j++;
}
*bn=j;
}
热心网友
时间:2023-10-16 18:41
odds(a,n,b,m); 改成 odds(a,n,b,&m);
这样从函数返回后,b数组中存放了奇数,m等于b数组中元素个数
函数odds改成
void odds(int *a,int an,int *b,int *bn)
{
int i,j = 0;
for(i=0;i<an;i++)
if(a[i]%2!=0)
{b[j]=a[i]; j++;}
*bn = j;
}追问然后主函数就改成这样了,还有什么错误啊?
main()
{
int m=10,a[n]={15,96,54,76,25,64,31,21,35,91},b[m]={0};
arrout(a,n);
odds(a,n,b,&m);
arrout(b,m);
}
热心网友
时间:2023-10-16 18:41
这个bn不应该是个指针,应该是数组b的大小吧?改成这样,防止数组b溢出,
void odds(int *a,int an,int *b,int bn)
{
int i,j;
for(j=0,i=0;i<an,j<bn;i++)
if(a[i]%2!=0)
{b[j]=a[i];j++;}
}
编写函数,把数组中所有奇数放在另一个数组中返回。(假设数组的长度不超...
}int main(){int a1[50]={ 10, 31, 3, 11, 8, 12, 9, 78 };int a2[50];int a2l=sodd(a2, a1, 8);
把数组中所有奇数放在另一个数组中返回
1 2 3 4 5 6 7 8 9 10 数组B:1 3 5 7 9 非得用个函数的话就定义一个全局数组变量 define N 10 int b[N];main(){int a[N],i,j;printf("Inte array A:\n");for(i=0;i<N;i++)scanf("%d",&a[i]);choose(a,N);printf("array B:\n");j=0;while(b[j]!='\0...
编写程序,把数组中所有奇数放在另一个数组中并返回。
编写程序,把数组中所有奇数放在另一个数组中并返回。#include<stdio.h> int fun(int *p,int c) { int i,b[10]={0},a=0; for(i=0;i<10;i++) if((p[i]%2)!=0) { b[a]=p[i]; a++; } for(i=0;i<a;i++) printf("b[%d]=%d\n",i,b[i]); for(i=0;i<10;i++) if((...
C语言编写函数把数组中所有的奇数放到另一数组返回
include <stdio.h> int fun(const int * const a,int n,int *const b){ int i,j;for (j=i = 0; i < n; i++) { if (a[i]%2) { b[j++]=a[i];} } return j;} int main(void){ int a[10],b[10],i,j=0;for (i = 0; i < 10; i++) { scanf("%d",&a...
把数组中所有的奇数放在另一个数组中返回
输入数组A:1 2 3 4 5 6 7 8 9 10 数组B:1 3 5 7 9 非得用个函数的话就定义一个全局数组变量 define N 10 int b[N];main(){int a[N],i,j;printf("Inte array A:\n");for(i=0;i<N;i++)scanf("%d",&a[i]);choose(a,N);printf("array B:\n");j=0;while(b...
编写程序,把数组中所有奇数放在另一个数组中并输出
int *p,int c){int i,b[10]={0},a=0;for(i=0;i<10;i++)if((p[i]%2)!=0){b[a]=p[i];a++;}for(i=0;i<a;i++)printf("b[%d]=%d\n",i,b[i]);for(i=0;i<10;i++)if((p[i]%2)==0){p[c]=p[i];c++;}return c;}void main(){int a[10]={0},...
C语言中如何把符合要求的数放到另一个数组中?
定义三个数组a[],b[],c[]。第一个a[]用来存放你输出的20个数字,后两个一个b[]存放奇数一个c[]存放偶数。首先要按照顺序读取a[]中这20个数字,然后进行判断,如果能被2整除那么就放进c[],如果不能被2整除就放入b[]。直到20个数都完成,然后做一个冒泡的排序或者选择排序,再对b[],c[...
用C语言编写一个程序,将一个数组中的元素复制到另一个数组中?
include <stdio.h> int main(){ int i, array1[5], array2[5];printf("请输入第一个数组:");for(i=0; i<5; i++)scanf("%d", &array1[i]);printf("\n第二个数组:");for(i=0; i<5; i++){ array2[i] = array1[i];printf("%d ", array2[i]);} return 0;} ...
C语言如何把一个数组内的某个部分,拷贝至另一个数组(C Primer Plus 10...
为实现将数组中一部分元素拷贝至另一数组的功能,需编写一个函数,该函数接受源数组、目的数组及元素拷贝范围。以下示例展示了如何使用C语言完成此任务。首先,定义拷贝函数。此函数接收三个参数:源数组、目的数组及元素的起始索引和结束索引(不包含结束索引)。函数实现过程如下:c void copyArrayPart(int...
C语言编程:从键盘中输入十个数对一个一维数组赋值,并将其中的奇数存放到...
include<stdio.h> main(){ int a[10],b[10];/*a数组存储输入的十位数,b数组存储奇数*/ int i,j=0;printf("Please Input Ten Numbers:\n");for(i=0;i<10;i++);{ scanf("%d",&a[i]);if(a[i]%2!=0){ b[j]=a[i];j++;} } printf("Output the JiShu:");for(i=0;...