#include <stdlib.h>
#include <string.h>
#include <stdio.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=maxList(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:指向最高工资结点 */
/* 在两条星线间填入相应代码,查找链表中最高工资的职工信息 */
/************************************************************/
while(p!=NULL) {
if(p->salary>max->salary)
max=p;
p=p->next;
}
/************************************************************/
return max;
}
为什么同样的代码在vs2022报错,vc6.0却可以
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- _GX_ 2022-03-08 00:37关注
帮你修改好了
#include <stdlib.h> #include <string.h> #include <stdio.h> struct empNode { /* 职工结点 */ char name[20]; /* 姓名 */ int salary; /* 基本工资 */ struct empNode *next; /* 结点指针 */ }; struct empNode *maxList(struct empNode *list); /* 函数声明 */ void destroy(struct empNode *list); int main() { struct empNode *list, *p = NULL, *q = NULL, *tail = NULL; char name[20]; int salary, n = 0; /* n: 计数器赋 0 */ /* 建立链表 list */ list = NULL; /* 设置链表为空表 */ printf("输入姓名和工资(工资为 0,结束输入):\n"); scanf("%s%d", name, &salary); while (salary != 0) { n++; /* 计数器加 1 */ p = (struct empNode *)malloc(sizeof(struct empNode)); /* 申请新结点 */ 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 = maxList(list); /**********************************************************************/ /* 输出查找结果 */ printf("最高工资的职工信息:\n"); printf("姓名:%s 工资:%d\n", q->name, q->salary); destroy(list); return 0; } struct empNode *maxList(struct empNode *list) /* 函数定义 */ { struct empNode *max = list, *p = list; /* max:指向最高工资结点 */ /* 在两条星线间填入相应代码,查找链表中最高工资的职工信息 */ /************************************************************/ while (p != NULL) { if (p->salary > max->salary) max = p; p = p->next; } /************************************************************/ return max; } void destroy(struct empNode *list) { while (list) { struct empNode *p = list; list = list->next; free(p); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
- ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
- ¥15 yolov9的训练时间
- ¥15 二叉树遍历没有报错但无法正常运行
- ¥15 在linux系统下vscode运行robocup3d上场球员报错
- ¥15 Python语言实验
- ¥15 SAP HANA SQL 增加合计行
- ¥20 用C#语言解决一个英文打字练习器,有偿
- ¥15 srs-sip外部服务 webrtc支持H265格式
- ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动