打印
[其它应用]

C语言的数组拆分,新手向,老手请留下您的算法

[复制链接]
421|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2023-8-23 10:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
新手入门,多看多学多记,不积跬步无以至千里~


今天,我们一起来分析C语言的算法:数组拆分。

算法:输入一个随机数组,将数组拆分为两个数组,一个为奇数数组,一个为偶数数组。

编程思路:

1、用scanf库函数实现,从键盘输入一个数组的10个元素;

2、逐一判断数组中每个元素,如果是奇数,就放入奇数数组;如果是偶数就放入偶数数组。

3、输出奇数数组和偶数数组。
  • #include <stdio.h>
  • unsigned int niu[10] = { 0 };
  • unsigned int even[10], odd[10];
  • unsigned char lp, e, d,i;
  • int main()
  • {
  •    e=d=0;
  •    printf("请输入数组中的元素\r\n");
  •    for(i=0;i<10;i++)
  •    {
  •      scanf("%d",&niu[ i]);
  •    }
  •    for(lp=0;lp<10;lp++)
  •    {
  •       if(niu[lp]%2 == 0)
  •       {
  •          even[e]=niu[lp];
  •          e++;
  •       }
  •       else
  •      {
  •          odd[d] = niu[lp];
  •          d++;
  •       }
  •    }
  •    printf(" 原始数组 -> ");
  •    for(lp = 0; lp < 10; lp++)
  •    {
  •     printf(" %d", niu[lp]);
  •    }
  •    printf("\n 偶数 -> ");
  •    for(lp = 0; lp < e; lp++)
  •       printf(" %d", even[lp]);
  •    printf("\n 奇数 -> ");
  •    for(lp = 0; lp < d; lp++)
  •       printf(" %d", odd[lp]);
  •    return 0;
  • }




使用特权

评论回复
沙发
1988ChenSir| | 2023-8-23 10:45 | 只看该作者
如果你输入的数组元素个数超过10个,可能会导致数组越界。
这个你尝试了吗?

使用特权

评论回复
板凳
1988ChenSir| | 2023-8-23 10:47 | 只看该作者
变量名 niu 可能不太直观,建议使用更具描述性的名称,例如 inputArray;同样,even 和 odd 也可以改成更易于理解的名字。

使用特权

评论回复
地板
1988ChenSir| | 2023-8-23 10:47 | 只看该作者
可以考虑使用动态数组,通过动态内存分配。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1501

主题

4497

帖子

6

粉丝