本文主要是介绍王道p18 04.从有序顺序表中删除其值在给定值s与1之间(要求s<1)的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。(c语言代码实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
视频讲解在这里哦(感谢支持!)👇
p18 第四题王道数据结构课后算法题(c语言代码实现)_哔哩哔哩_bilibili
本题代码如下
void deletest(struct sqlist* L, int s, int t)
{int i = 0;int j = 0;if (s >= t || L->length == 0)printf("错误");for (i = 0; i < L->length && L->a[i] < s; i++){;}if (i > L->length)printf("错误");for (j = i; j < L->length && L->a[j] <= t; j++){;}for (; j < L->length; i++, j++)L->a[i] = L->a[j];L->length = i;
}
完整测试代码
#include<stdio.h>
#define Max 50
struct sqlist
{int a[Max];int length;
};
void deletest(struct sqlist* L, int s, int t)
{int i = 0;int j = 0;if (s >= t || L->length == 0)printf("错误");for (i = 0; i < L->length && L->a[i] < s; i++){;}if (i > L->length)printf("错误");for (j = i; j < L->length && L->a[j] <= t; j++){;}for (; j < L->length; i++, j++)L->a[i] = L->a[j];L->length = i;
}
int main()
{struct sqlist L;L.length = 6;int k = 0;for (k = 0; k < L.length; k++)scanf("%d", &L.a[k]);printf("原始的顺序表为:");for (k = 0; k < L.length; k++)printf("%d", L.a[k]);deletest(&L, 3, 5);printf("\n删除后的顺序表为:");for (k = 0; k < L.length; k++)printf("%d", L.a[k]);return 0;
}
这篇关于王道p18 04.从有序顺序表中删除其值在给定值s与1之间(要求s<1)的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。(c语言代码实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!