鱼C论坛

 找回密码
 立即注册
查看: 746|回复: 1

[已解决]输出结果正确,但会提示框框

[复制链接]
发表于 2020-9-17 14:06:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include"stdafx.h"
#include"malloc.h"
struct student//声明一个结构体
{
        int num;
        int name;
        struct student *next;
};
typedef struct student   ppt;//取别名
ppt *jiao();
ppt  *jiao()//创建这个结点
{
        ppt *head, *zhong, *wei;
        wei = (ppt *)malloc(sizeof(ppt));//开辟内存
        zhong = wei;
        scanf_s("%d,%d", &zhong->num, &zhong->name);//输入数据,中间用逗号隔开

        int n;
        n = 0;
        head = NULL;
        while (wei->num)//当输入数据num不为0的话执行,反之不符合要求,停止结点创建12
        {
                n = n + 1;
                if (n == 1)//第一个结点
                {
                        head = zhong;
                }
                else
                {
                        zhong->next = wei;
                        zhong = wei;
                }
                wei = (ppt *)malloc(sizeof(ppt));//创建第二个结点及以上
                scanf_s("%d,%d", &wei->num, &wei->name);//继续输入数据


        }
        zhong = NULL;//最后一个结点地址
        return head;//返回头结点

}

int main()


{
        ppt *lll;//定义一个指向结构体的指针变量
        lll = jiao();//引用开辟结点函数
        while (NULL!=lll)//循环输出结点
        {
                printf("%d,%d", lll->num, lll->name);//((((输出后有点小问题,结果没什么问题,但放在程序上运行那就出现大问题;))))
                lll = lll->next;
        }
        free(lll);//释放内存空间
        return 0;//运行后结果正确出现了一个错误框架东西,看看你们电脑会不会出错,麻烦各位大哥了,我怀疑我电脑出问题。



}
最佳答案
2020-9-17 14:44:54
#include"stdafx.h"
#include"malloc.h"
struct student//声明一个结构体
{
        int num;
        int name;
        struct student *next;
};
typedef struct student   ppt;//取别名
ppt *jiao();
ppt  *jiao()//创建这个结点
{
        ppt *head, *zhong, *wei;
        wei = (ppt *)malloc(sizeof(ppt));//开辟内存
        //将next 赋值 null 
        wei->next = NULL;
        zhong = wei;
        scanf_s("%d,%d", &zhong->num, &zhong->name);//输入数据,中间用逗号隔开

        int n;
        n = 0;
        head = NULL;
        while (wei->num)//当输入数据num不为0的话执行,反之不符合要求,停止结点创建12
        {
                n = n + 1;
                if (n == 1)//第一个结点
                {
                        head = zhong;
                }
                else
                {
                        zhong->next = wei;
                        zhong = wei;
                }
                wei = (ppt *)malloc(sizeof(ppt));//创建第二个结点及以上
               //将next 赋值 null 
                wei->next = NULL;
                scanf_s("%d,%d", &wei->num, &wei->name);//继续输入数据


        }
        zhong = NULL;//最后一个结点地址
        return head;//返回头结点

}

int main()


{
        ppt *lll;//定义一个指向结构体的指针变量
        lll = jiao();//引用开辟结点函数
//        因为next 没有赋值null , 因此这是个死循环,到了最后一个节点其实是访问到了非法内存地址异常退出
        while (NULL!=lll)//循环输出结点
        {
                printf("%d,%d", lll->num, lll->name);//((((输出后有点小问题,结果没什么问题,但放在程序上运行那就出现大问题;))))
                lll = lll->next;
        }
        free(lll);//释放内存空间
        return 0;//运行后结果正确出现了一个错误框架东西,看看你们电脑会不会出错,麻烦各位大哥了,我怀疑我电脑出问题。



}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-17 14:44:54 | 显示全部楼层    本楼为最佳答案   
#include"stdafx.h"
#include"malloc.h"
struct student//声明一个结构体
{
        int num;
        int name;
        struct student *next;
};
typedef struct student   ppt;//取别名
ppt *jiao();
ppt  *jiao()//创建这个结点
{
        ppt *head, *zhong, *wei;
        wei = (ppt *)malloc(sizeof(ppt));//开辟内存
        //将next 赋值 null 
        wei->next = NULL;
        zhong = wei;
        scanf_s("%d,%d", &zhong->num, &zhong->name);//输入数据,中间用逗号隔开

        int n;
        n = 0;
        head = NULL;
        while (wei->num)//当输入数据num不为0的话执行,反之不符合要求,停止结点创建12
        {
                n = n + 1;
                if (n == 1)//第一个结点
                {
                        head = zhong;
                }
                else
                {
                        zhong->next = wei;
                        zhong = wei;
                }
                wei = (ppt *)malloc(sizeof(ppt));//创建第二个结点及以上
               //将next 赋值 null 
                wei->next = NULL;
                scanf_s("%d,%d", &wei->num, &wei->name);//继续输入数据


        }
        zhong = NULL;//最后一个结点地址
        return head;//返回头结点

}

int main()


{
        ppt *lll;//定义一个指向结构体的指针变量
        lll = jiao();//引用开辟结点函数
//        因为next 没有赋值null , 因此这是个死循环,到了最后一个节点其实是访问到了非法内存地址异常退出
        while (NULL!=lll)//循环输出结点
        {
                printf("%d,%d", lll->num, lll->name);//((((输出后有点小问题,结果没什么问题,但放在程序上运行那就出现大问题;))))
                lll = lll->next;
        }
        free(lll);//释放内存空间
        return 0;//运行后结果正确出现了一个错误框架东西,看看你们电脑会不会出错,麻烦各位大哥了,我怀疑我电脑出问题。



}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 03:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表