在vs运行结果时不弹出运行框,在vc++6.0中能弹出,但是输入后按回车没有用?


#include <iostream>
#include<stdio.h>
#include<malloc.h>
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBALE -1//不可执行的
#define OVERFLOW -2
typedef int Status;
typedef int Elemtype;
//结点定义
typedef struct LNode
{
    Elemtype data;
    struct LNode* next;
}*LinkList;
//创建表
void CreateList_L(LinkList &L, int n)
{
    LinkList p;
    L = (LinkList)malloc(sizeof(LNode));
    L->next = NULL;
    printf("请输入你的学号");
    for (int i = n; i > 0; --i)
    {
        p = (LinkList)malloc(sizeof(LNode));
        scanf("%d", &p->data);
        p->next = L->next;
        L->next = p;
    }
}
//删除
Status ListDelete_L(LinkList& L, int i, Elemtype& e)
{
    //删除第i个,由e返回其值
    LinkList p, q;
    p = L;
    int j = 0;
    while (p->next && j < i - 1)
    {
        //寻找第i个结点,并使p指向其前驱
        p = p->next; ++j;
        if (!(p->next) || j > i - 1)
            return ERROR;
        q = p->next;
        p->next = q->next;
        free(q);
        return OK;
    }
}
void display(LinkList L)
{
    LinkList p = L->next;
    while (p)
    {
        printf("%d", p->next);
        p = p->next;
    }
    printf("\n");
}
void main()
{
    LinkList L;
    CreateList_L(L, 8);
    Elemtype e;
    ListDelete_L(L, 7, e);
    printf("被删除的值:%d\n", e);
    display(L);
}

img

修改如下,供参考:

#include <iostream>
#include<stdio.h>
#include<malloc.h>
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBALE -1//不可执行的
#define OVERFLOW -2
typedef int Status;
typedef int Elemtype;
//结点定义
typedef struct LNode
{
    Elemtype data;
    struct LNode* next;
}*LinkList;
//创建表
void CreateList_L(LinkList &L, int n)
{
    LinkList p,qL;
    L = (LinkList)malloc(sizeof(LNode));
    L->next = NULL;
    qL = L;      //修改
    printf("请输入%d个结点的值:",n);
    for (int i = n; i > 0; --i)
    {
        p = (LinkList)malloc(sizeof(LNode));
        p->next = NULL;            //修改
        scanf("%d", &p->data);
        qL->next = p;  //p->next = L->next;
        qL = p;        //修改
    }
}
//删除
Status ListDelete_L(LinkList& L, int i, Elemtype& e)
{
    //删除第i个,由e返回其值
    LinkList p, q;
    p = L;
    int j = 0;
    while (p->next && j < i - 1)
    {
        //寻找第i个结点,并使p指向其前驱
        p = p->next;
        ++j;
    }
    if (!(p->next) || j > i - 1)
            return ERROR;
    e = p->next->data;    //修改
    q = p->next;
    p->next = q->next;
    free(q);
    return OK;
    //}
}
void display(LinkList L)
{
    LinkList p = L->next;
    while (p)
    {
        printf("%d ", p->data);// printf("%d ", p->next); 修改
        p = p->next;
    }
    printf("\n");
}
int main()
{
    LinkList L;
    CreateList_L(L,8);
    Elemtype e=0;
    ListDelete_L(L, 8, e);
    printf("被删除的值:%d\n", e);
    display(L);
    return 0;
}

scanf_s试下

暂时没看出什么重大问题。试试int main(){}。还有sizeof(struct LNode)