Dream答案 2017-09-20 16:39 采纳率: 0%
浏览 1117
已结题

为什么是以0作为输入结束的?

void input(SqList &L)//输入数据
{
scanf("%d",L.elem);
while(*L.elem)//elem是指针,加*后才是值
{
L.elem++;
L.length++;
scanf("%d",L.elem);
}
}
在这里面为什么输入0代表结束?
这是全部代码:
#include
#include
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define TRUE 1;
#define FALSE 0;
#define OK 1;
#define ERROR 0;
#define INFEASIBLE -1;
#define OVERFLOW -2;
//Status 是函数的类型,其值是函数结果状态代码
typedef int Status;
using namespace std;
typedef int ElemType;
typedef struct//线性表的动态顺序存储结构
{
ElemType *elem;
int length;
int listsize;

} SqList;
Status InitList_Sq(SqList &L)//初始化线性表
{
//构造一个空的线性表
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
return OVERFLOW;
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;

}
void input(SqList &L)//输入数据
{
scanf("%d",L.elem);
while(*L.elem)//elem是指针,加*后才是值
{
L.elem++;
L.length++;
scanf("%d",L.elem);
}
}
void print(SqList &L)//输出数据
{
int i;
for(i=0;i {
printf("%d",*L.elem);
L.elem++;
}
}
Status ListInsert_Sq(SqList &L,int i,ElemType e)//进行插入操作
{
int *p;
int *q;
ElemType *newbase;
if(iL.length+1)
return ERROR;
if(L.length==L.listsize)
{
newbase=(ElemType )realloc(L.elem,
(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)
return ERROR;
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
/*q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
/
for(int j=L.length;j>=i;j--)
L.elem[j]=L.elem[j-1];
L.elem[i-1]=e;
++L.length;//表长加1
return OK;
}
int main()
{
SqList L;
int a[100];
int n,num;
if(InitList_Sq(L))//进行一次判断
{
L.elem=a;//将数组的首地址传递给elem
printf("请输入:\n");
input(L);
}
L.elem=a;//用的过程中指针已经移动,因此需要归位,才可以从首位用起
printf("输入的数据为:\n");
print(L);
printf("\n");
printf("输入需要插入的位置:\n");
scanf("%d",&n);
printf("输入插入的数:\n");
scanf("%d",&num);
L.elem=a;
if(ListInsert_Sq(L,n,num))
{
printf("插入后的数据元组:\n",L.length);
L.elem=a;
print(L);
}

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-09-21 00:47
    关注

    while(*L.elem)//elem是指针,加*后才是值
    {
    L.elem++;
    L.length++;
    scanf("%d",L.elem);
    }
    如果输入0,while不满足

    评论

报告相同问题?

悬赏问题

  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法