A.3——顺序表拆分奇偶

这段代码展示了如何用C语言实现一个功能,即从一个顺序表中删除所有的偶数元素并将这些偶数保存到另一个顺序表中。程序首先创建一个顺序表,然后遍历表中的每个元素,遇到偶数则将其移到新的顺序表中,同时调整原表的元素位置。最后,程序打印出两个顺序表的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码

        

#include<stdio.h>
#include<string.h>
#define Max 10

//给定一个顺序表(元素均为正整数)将表中的偶数删除,并保存在另一个顺序表中 
typedef struct {
    int data[Max];
    int length;
}node;

void Creat(node &L)                                    //创建顺序表 
{
    int n;
    printf("共输入元素个数:");
    scanf("%d",&n);
    int i;
    for(i=0;i<n;i++){
        scanf("%d",&L.data[i]);
        if(L.data[i] < 0){
            printf("输入数据不符,请重新输入\n");
            scanf("%d",&L.data[i]);
        }
    }
    L.length =n;
}
int jiou(node &L, node &L1)
{
    L1.length=0; 
    int i,j=0,k;
    for(i=0;i<L.length ;i++){
        if(L.data[i]%2 == 0)                        //如果为偶数
        {
            L1.data [j++]=L.data [i];                //将偶数赋值给L1 
            if(i == L.length-1){                    //如果最后一个元素为偶数,则长度减一,结束 
                L.length --;
                L1.length ++;
                break;
            }
            for(k=i;k<L.length;k++){                //如果不是最后一个元素,则后面所有元素前移 
                L.data[k]=L.data[k+1];
            }
            L1.length ++;
            L.length --;
         } 
    }
}
int Dis(node L)                                        //打印 
{
    if(L.length <=0) return 0;
    int i=0;
    for(i=0;i<L.length ;i++){
        printf("%d ",L.data[i]);
    }
    printf("\n");
    return 1;
 } 
int main()
{
    node L;
    node L1;
    Creat(L);
    jiou(L,L1);
    Dis(L);
    Dis(L1);
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值