本次代码可以覆盖以下几个题目:
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函数的内置测试样例不修改,那么正确的输出结果为