icoding测试代码----顺序表部分

本次代码可以覆盖以下几个题目:

icoding的数据结构并没有一个测试代码,其都是直接编写一个函数的形式,因此很难知道自己的实际输出是什么。针对部分题目,我编写了一系列测试代码以供大家进行数据输出的测试。

请先将你的代码复制到

void del_x2y(SeqList *L, ElemType x, ElemType y){
//TODO
}

void del_dupnum(SeqList *L){
//TODO
}

void odd_even(SeqList *L){
//TODO
}
里面

到函数中然后修改main函数完成测试样例的输入

在main代码中间有个修改提示,请按照提示操作修改即可

若仅需要对某一函数进行测试(只做某一题,可以在main函数进行相关修改)

main函数中一共有一个区域可以进行修改

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>

#define MAXSIZE 100
#define ElemType int
struct _seqlist{
    ElemType elem[MAXSIZE];
    int last;
};
typedef struct _seqlist SeqList;


void del_x2y(SeqList *L, ElemType x, ElemType y)//删除指定范围
 {
//TODO
}

void del_dupnum(SeqList *L)  //删除重复
{
//TODO
}

void odd_even(SeqList *L)//数据调整
{
//TODO
}





//初始化线性表
void InitList(SeqList *L){
    L->last = -1;
}


//将elem[]数组填入到线性表中
void ListInsert(SeqList *L,ElemType e[],int len){
    for(int i=0;i<len;i++){
        L->elem[i] = e[i];
        L->last++;
    }
}
//打印线性表
void ListPrint(SeqList *L){
    for(int i=0;i<=L->last;i++){
        printf(" %d ",L->elem[i]);
        if(i!=L->last)
            printf("->");
    }
    printf("\n");
}

int main(){
    SeqList L;
    
//------------您 可 以 修 改 以 下 内 容 --------------    
    ElemType elem[]={1,1,2,3,4,5,6,7,8,9};//顺序表数组,可修改
    //必须为int类型。
    //第二题题目要求满足非递减数列,根据icoding测试,需要满足不减,不满足仍然可以测试。

    
    bool no1=true;//删除指定范围,运行del_x2y()函数(第一题)
    int del1=2,del2=5;//可修改,第一题的删除范围

    bool no2=true;//删除重复,运行del_dupnum()函数(第二题)
    bool no3=true;//数据调整,运行odd_even函数(第三题)


//------------您 可 以 修 改 以 上 内 容 --------------   


    printf("--icoding--\n");
    printf("顺序表部分\n");
    int len=sizeof(elem)/sizeof(elem[0]);
    InitList(&L);
    ListInsert(&L,elem,len);
    
    
    printf(">>初始化链表\n");
    ListPrint(&L);
    printf("初始化成功将按照在main函数的设置运行相关函数,设置为false的不运行\n");
    printf("程序每次运行一个题均会重新初始化顺序表至最初状态\n\n");
    

    if(no1){
        InitList(&L);
        ListInsert(&L,elem,len);
        if(del1>del2){
            printf(">>删除范围错误,del1>del2,请重新设置\n");
        }
        else{
        printf(">>删除指定范围,范围为[%d,%d]\n",del1,del2);
        del_x2y(&L,del1,del2);
        ListPrint(&L);
        }
        printf("\n");
    }

    if(no2){
        InitList(&L);
        ListInsert(&L,elem,len);
        printf(">>删除重复\n");
        //检查链表是否升序
            for(int i=0;i<=L.last;i++){
            if(L.elem[i]>L.elem[i+1]){
                printf("提示##第二题题目要求为不减,您的数据不符合,但仍然会运行此函数\n");
                break;
            }
            }

        del_dupnum(&L);
        ListPrint(&L);
        
        printf("\n");
    }

    if(no3){
        InitList(&L);
        ListInsert(&L,elem,len);
        printf(">>数据调整\n");
        odd_even(&L);
        ListPrint(&L);
        printf("题目要求·满足左边的元素(即排在前面的)均为奇数,右边所有元素(即排在后面的)均为偶数\n");
        putchar('\n');  
    }


    printf("本程序仅输出结果,不判断结果正确与否\n----测试结束----\n");
    return 0;

}

如果对main函数的内置测试样例不修改,那么正确的输出结果为 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谨慎谦虚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值