空网小能手 2021-10-22 11:26 采纳率: 0%
浏览 19

用vs2013和vc++6.0做链表的时候遇到问题

各位顺便看看,抬手解决一下的问题
不知道是优学院的题目出错了,还是我打错了
错误显示是在题目那边的


#include<stdio.h>
#include"stdafx.h"
#include <stdlib.h> 
#include <string.h> 
struct empNode{                /* 职工结点 */
    char name[20];            /* 姓名 */
    int salary;                /* 基本工资 */
    struct emp_node *next;    /* 结点指针 */
};
int size = sizeof(struct empNode); /* 结点大小 */
int main()
{
    struct empNode *list, *p = NULL, *q = NULL, *tail = NULL;
    char name[20];
    int salary, n = 0; /* n: 计数器赋 0 */
    struct empNode * maxList(struct emp_node *list); /* 函数声明 */

    /* 建立链表 list */
    list = NULL; /* 设置链表为空表 */
    printf("输入姓名和工资(工资为 0,结束输入):\n");
    scanf("%s%d", name, &salary);
    while (salary != 0)
    {
        n++; /* 计数器加 1 */
        p = (struct empNnode *)malloc(size); /* 申请新结点 */
        strcpy(p->name, name); p->salary = salary; p->next = NULL;
        if (n == 1)list = p; else tail->next = p; /* 链入新结点 */
        tail = p; /* 尾指针后移 */
        scanf("%s%d", name, &salary);
    }

    /* 在两条星线间填入相应代码,调用 maxNode()函数查找链表中最高工资结点 */
    /**********************************************************************/
    q = empNode(list);

    /**********************************************************************/

    /* 输出查找结果 */
    printf("最高工资的职工信息:\n");
    printf("姓名:%s 工资:%d\n", q->name, q->salary);
    return 0;
}

struct empNode * maxList(struct empNode *list) /* 函数定义 */
{
    struct empNode *max = list, *p = list; /* max:指向最高工资结点  */

    /* 在两条星线间填入相应代码,查找链表中最高工资的职工信息   */
    /************************************************************/
    for (; p != NULL; p = p->next){
        if (max->salary < p->salary){
            max = p;
        }
    }


    /************************************************************/
    return max;
}

img

img

  • 写回答

1条回答 默认 最新

  • 信仰869 2021-10-22 11:37
    关注

    感觉有点儿乱,看看链表插入的知识点儿吧

    struct empNode{                /* 职工结点 */
        char name[20];            /* 姓名 */
        int salary;                /* 基本工资 */
        //struct emp_node *next;    /* 结点指针 */   //这一行错了
        struct empNode *next;
    };
    //p = (struct empNnode *)malloc(size);  //26行错了
    p = (struct empNode *)malloc(size);
    //q = empNode(list);  35
    评论

报告相同问题?

问题事件

  • 创建了问题 10月22日