该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

错误18error C2040: “FineStu”:“Student *(int)”与“int ()”的间接寻址级别不同e:\vs\study\study\study.c1441Study

#include

#include

#include

#include

typedef struct StudentManage{ //学生信息结构体

int id;

char name[21];

char sex[3];

short age;

struct StudentManage* next;

}Student;

static Student* G_Head = NULL; //链表头

static Student* G_Current = NULL; //记录当前链表位置

static int G_Count = 0;

//添加学生信息

void AddStu(void){

int temp_sel;

int temp_id;

char temp_name[21];

char temp_sex[3];

short temp_age;

system("cls");

printf("添加学生信息\n");

if (G_Head == NULL){

G_Current = (Student*)malloc(sizeof(struct StudentManage));

G_Head = G_Current;

printf("学号:");

scanf("%d",&temp_id);

printf("姓名:");

scanf("%s", temp_name);

printf("性别:");

scanf("%s", temp_sex);

printf("年龄:");

scanf("%hd", &temp_age);

G_Current->id = temp_id;

strcpy(G_Current->name, temp_name);

strcpy(G_Current->sex, temp_sex);

G_Current->age = temp_age;

G_Current->next = NULL;

G_Count++;

printf("1、继续添加 2、返回\n");

temp_sel = getche();

while (1){

if (temp_sel == '1' || temp_sel == '2'){

if (temp_sel == '1')break;

if (temp_sel == '2')return;

}

else{

printf("输入错误!\n");

printf("1、继续添加 2、返回\n");

temp_sel = getche();

}

}

}

while (1){

if (G_Current == NULL)return;

G_Current->next = (Student*)malloc(sizeof(struct StudentManage));

G_Current = G_Current->next;

printf("学号:");

scanf("%d", &temp_id);

printf("姓名:");

scanf("%s", temp_name);

printf("性别:");

scanf("%s", temp_sex);

printf("年龄:");

scanf("%hd", &temp_age);

G_Current->id = temp_id;

strcpy(G_Current->name, temp_name);

strcpy(G_Current->sex, temp_sex);

G_Current->age = temp_age;

G_Current->next = NULL;

G_Count++;

printf("1、继续添加 2、返回\n");

temp_sel = getche();

while (1){

if (temp_sel == '1' || temp_sel == '2'){

if (temp_sel == '1')break;

if (temp_sel == '2')return;

}

else{

printf("输入错误!\n");

printf("1、继续添加 2、返回\n");

temp_sel = getche();

}

}

}

}

//删除学生信息

void DelStu(void){

int temp_id;

int temp_sel;

Student* temp_current;

Student* temp;

system("cls");

printf("请输入要删除的学号:");

while (1){

scanf("%d", &temp_id);

temp_current = FineStu(temp_id);

if (temp_current == NULL)

printf("找不到要删除的学号!");

else{

P(temp_current);

printf("1、删除 2、返回");

temp_sel = getche();

while (1){

if (temp_sel == '1' || temp_sel == '2'){

if (temp_sel == '1'){

temp = temp_current->next;

temp_current->next = temp_current->next->next;

free(temp);

break;

}

if (temp_sel == '2')return;

}

else{

printf("输入错误!\n");

printf("1、删除 2、返回");

temp_sel = getche();

}

}

}

}

}

/*搜索学生信息 返回0为参数错误,返回NULL搜索不到id,搜索到返回当前地址的上一个地址*/

Student* FineStu(int id){

Student* temp_current = G_Head;

Student* temp;

if (id <= 0)return 0;

if (G_Head->id == id)return G_Head;

while (temp_current->next != NULL){

temp = temp_current;

if (temp_current->next->id == id){

return temp;

}

}

return NULL;

}

//排序

void Sort(void){

Student* temp_current = G_Head;

Student* temp_ptr = NULL;

for (int x = 0; x < G_Count - 1; x++){

for (int y = 0; y < G_Count - 1 - x; y++){

if (temp_current->id>temp_current->next->id){

temp_ptr = temp_current->next;

temp_current->next = temp_current;

temp_current = temp_ptr;

}

}

}

}

//打印学生信息

void P(Student* data){

if (data == NULL)return;

printf("学号:%d\n", data->id);

printf("姓名:%s\n", data->name);

printf("性别:%s\n", data->sex);

printf("年龄:%hd\n", data->age);

return;

}

//释放链表内存

void FreeStu(void){

Student* temp_current;

while (1){

if (G_Head != NULL){

temp_current = G_Head;

G_Head = G_Head->next;

free(temp_current);

}

else{

return;

}

}

}

int main(void){

AddStu();

FreeStu();

return 0;

}

c语言间接级别不同_间接寻址不同问题?求解决!相关推荐

  1. c语言间接级别不同_例9:C语言实现成绩的等级判别

    例9:C语言实现按照考试成绩的等级输出百分制分数段,A等为85-100分,B等为70-84分,C等为60-69分,D等为60分以下. 解题思路:这是一个多分支选择问题,根据百分制分数将学生成绩分为4个 ...

  2. c语言间接级别不同_一个超复杂的间接递归——C语言初学者代码中的常见错误与瑕疵(6)...

    问题: 在该文的最后,曾提到完成的代码还有进一步改进的余地.本文完成了这个改进.所以本文讨论的并不是初学者代码中的常见错误与瑕疵,而是对我自己代码的改进和优化.标题只是为了保持系列的连续性. 改进 程 ...

  3. java 数组越界异常_数组越界异常 求解决!!!

    源自:4-3 滚动状态判断与处理 数组越界异常 求解决!!! package com.example.imooc; import java.io.BufferedInputStream; import ...

  4. 语言转4字节数据整型_R语言与RGui平台_数据类型_向量_4

    计算机语言RGui平台上的R语言__数据类型_向量_4 R语言进阶4_数据类型_向量1 咱们而可以从自然语言(汉语.英.法.俄.德.日.拉丁.伊斯兰.等等)的基本特征来看--词汇.句子.段落.结构.文 ...

  5. 谭浩强c语言第六章兔子数列,谭浩强 C语言 第6章_循环.ppt

    谭浩强 C语言 第6章_循环 第六章 本章要点 循环的基本概念 不同形式的循环控制 多重循环问题 主要内容 6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循 ...

  6. 只能输入字母的c语言程序设计教程课后答案,c语言程序设计基础教程_习题答案20120319...

    <c语言程序设计基础教程_习题答案20120319>由会员分享,可在线阅读,更多相关<c语言程序设计基础教程_习题答案20120319(54页珍藏版)>请在技术文库上搜索. 1 ...

  7. c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc

    C语言程序设计(B)试卷_杨崇联(A1) 江 西 理 工 大 学 考 试 试 卷 试卷编号: 20 11 -20 12 学年第 2 学期 课程名称: C语言程序设计(B) 考试时间: 年 月 日考试性 ...

  8. c语言数组数据用指针查找,c语言数组与指针_指针篇_2011.ppt

    c语言数组与指针_指针篇_2011 指 针 6.2 指针的概念6.3 指针与数组6.4 字符串的指针6.5 指针数组和指向指针的指针;6.2.1 地址与指针的概念 ;指针的概念;内存地址;2.数组与地 ...

  9. c语言运行时更入下一行,C语言高级语言程序设计(一)_第二章 C程序设计基础(二).ppt...

    C语言高级语言程序设计(一)_第二章 C程序设计基础(二) * 问a,b能否交换?不能.示例 传值调用 如何改变参数的值?在后续章节中介绍 下:传值 * 传值的好处 下:问题3.2 * * * 使用范 ...

  10. C语言——选择法排序_数组

    C语言--选择法排序_数组 问题描述 对于任意给定的含有十个数字的一维数组,如何进行排序? 编程思想: 让a[0]最小,分别与a[1].a[2]-a[9]比较: 让a[1]最小,分别与a[2]-a[9 ...

最新文章

  1. 利用二极管的P-N结的I-V特性测量Boltzmann常数
  2. 系统分析师零散知识点
  3. 2021春季每日一题【week4 完结】
  4. iOS中AutoLayer自动布局流程及相关方法
  5. NC16886 炮兵阵地
  6. VC++ 深入详解 学习笔记(5) -- 修改窗口样式续
  7. php 正则mysql语句_MySQL正则表达式搜索 - mysql数据库栏目 - 自学php
  8. 项目开发流程_绿维文旅:旅游项目开发模式与流程
  9. 告别30元!喜茶承诺今年绝不涨价:不再推29元以上产品
  10. 如何使用 淘宝 NPM 镜像
  11. 机器学习 | 算法笔记- 决策树(Decision Tree)
  12. docker可用容量 查看_查看docker容器的内存占用
  13. beanstalkd协议解读(中文翻译加个人理解)
  14. 【win11】你不能不会的技巧(持续更新)
  15. Android Studio 高版本无法执行Java main方法的问题
  16. iPhone手机蓝牙找不到AirPods耳机的解决方法
  17. iOS直播:评论框与粒子系统点赞动画
  18. Python爬虫(一)——58同城租房信息
  19. 【栈和队列】栈的push、pop序列
  20. “红山开源”创新论坛 | ChinaOSC

热门文章

  1. git lfs常用命令
  2. 知名建筑景观3D可视化渲染软件lumion10.5
  3. python人民币转大写_python将人民币转换大写的脚本代码
  4. 怪物之心无法触发_《异度之刃2》稀有异刃力男怪物之心支线任务攻略
  5. 微信订阅号和公众号的区别
  6. windows 查询域名DNS解析
  7. Xcode iphone模拟器运行不流畅
  8. 两种双绞线的线序568A与568B
  9. php控制表格颜色,php – 表格列的背景颜色
  10. android手机Root全过程