之前在创建了一个顺序表的功能函数,这个没有疑问,测试没有错误,但是在接下来的做插入功能的时候发现插入的时候用模块写,不调用这个创建的函数,很难做到这个。该怎么实现这个“高内聚,低耦合”的原则。
#include <stdlib.h>
#include "Orderfist.h"
status InsertList_Sq(
SqList L[]
) /* 在链表插入一个元素 */
{
UINT32 Insert_position = 0U, Insert_data = 0U, u32i = 0U, u32length = 0U, u32temp = 0U; /* 定义一个无符号的位置插入变量,数据变量,和循环体变量 */
INT32 i32OSM = 1;
i32OSM = OSM_Printf("请输入要插入的位置(非负数):"); /* 提示要输入的地方 */
Insert_position = scanf_for(); /* 输入要插入的位置 */
if ( ((u32length - 1U) < Insert_position ) && ( 0U > Insert_position)) /* 如果输入了非法数据,进行处理 */
{
i32OSM = OSM_Printf("你输入的位置有误!\n");
}
i32OSM = OSM_Printf("请输入要插入的数据:\n"); /* 提示要输入数据 */
Insert_data = scanf_for(); /* 输入要插入的数据 */
if ( Insert_position == u32i) /* 找到插入的位置之后进行移位的处理 */
{
L[Insert_position].elem = L[u32i].elem;
}
for ( u32i = Insert_position + 1U; u32i < (L->u32length + 1U); u32i++) /* 插入的位置之后的数据进行处理 */
{
u32temp = *L[u32i].elem;
*L[u32i].elem = *L[u32i +1U].elem;
*L[u32i +1U].elem = u32temp;
}
for ( u32i = 0U; u32i < u32length; u32i ++)
{
if ( 0U != L[u32i].u32length)
{
i32OSM = OSM_Printf (" %d -> ", L[u32i].u32length); /* 全部打印出来 */
}
}
return 0U;
}这个中有很多是执行不到的语句 怎么办呢?可能主函数中调用的时候传参没有传好。还有就是这个里面每次总是出现输入错误。主函数在调用创建的函数之后,结构体L中的值会不会改变呢?原文地址:http://blog.csdn.net/u011046042/article/details/41924755