鱼C论坛

 找回密码
 立即注册
查看: 2282|回复: 2

[已解决]用c++怎么写这题,求大佬帮助

[复制链接]
发表于 2018-3-9 16:39:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
任务二:编写函数(或方法):将某已知数组的奇数项组合成一个新的数组。在主函数(或主方法)中调用该函数(或方法),并循环输出新数组的内容。
要求:
        在主函数(或主方法)中定义一个已初始化值的数组,该数组中的值为:1,2,3,4,5,6,7,8,9,10,11。
        编写函数(或方法),函数(或方法)名为:OddArray;它有一个输入参数,数据类型为数组;它的返回值类型为数组。它实现如下功能:将参数数组中的奇数项存入结果数组,并返回该数组。
        在主函数(或主方法)中定义一个新的数组,用于获取OddArray的返回值,然后显示该返回值(显示结果应为1,3,5,7,9,11)。
最佳答案
2018-3-18 16:22:37
写的可能啰嗦了一些,新人
  1. void main()
  2. {
  3.         int *OddArray(int p[]);
  4.         int getNum1(int m[]);
  5.         int a[11]={1,2,3,4,5,6,7,8,9,10,11};
  6.         int *p1,num;
  7.         p1=OddArray(a);
  8.         num=getNum1(p1);
  9.         for(int i=0;i<num;i++)
  10.         {
  11.                 cout<<*(p1+i)<<"  ";
  12.        
  13.         }
  14.         cout<<endl;
  15.         delete p1;
  16.         system("pause");

  17. }
  18. int *OddArray(int p[])
  19. {
  20.         int *p2=new int[100];
  21.         int m=0;
  22.         for(int i=0;i<11;i++)
  23.         {
  24.                 if((p[i]%2)!=0)
  25.                 {
  26.                         *(p2+m)=p[i];
  27.                         m++;
  28.                 }
  29.         }
  30.         return p2;

  31. }
  32. int getNum1(int m[])
  33. {
  34.     int n=0;
  35.     for (int x=0;x<100;x++)
  36.    {       
  37.             if (m[x]<0) break;
  38.          n++;
  39.    }
  40.    return n;
  41. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-9 17:26:28 | 显示全部楼层
随手写了一个实现,可能需要简单调试一下
  1. int * OddArray(int *s, int n)
  2. {
  3.         int *t = new int[n/2];
  4.         for (int i = 0; i < n; i += 2)
  5.                 *t++ = s[i];
  6.         return t-n/2;
  7. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-18 16:22:37 | 显示全部楼层    本楼为最佳答案   
写的可能啰嗦了一些,新人
  1. void main()
  2. {
  3.         int *OddArray(int p[]);
  4.         int getNum1(int m[]);
  5.         int a[11]={1,2,3,4,5,6,7,8,9,10,11};
  6.         int *p1,num;
  7.         p1=OddArray(a);
  8.         num=getNum1(p1);
  9.         for(int i=0;i<num;i++)
  10.         {
  11.                 cout<<*(p1+i)<<"  ";
  12.        
  13.         }
  14.         cout<<endl;
  15.         delete p1;
  16.         system("pause");

  17. }
  18. int *OddArray(int p[])
  19. {
  20.         int *p2=new int[100];
  21.         int m=0;
  22.         for(int i=0;i<11;i++)
  23.         {
  24.                 if((p[i]%2)!=0)
  25.                 {
  26.                         *(p2+m)=p[i];
  27.                         m++;
  28.                 }
  29.         }
  30.         return p2;

  31. }
  32. int getNum1(int m[])
  33. {
  34.     int n=0;
  35.     for (int x=0;x<100;x++)
  36.    {       
  37.             if (m[x]<0) break;
  38.          n++;
  39.    }
  40.    return n;
  41. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-8 07:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表