c语言间接级别不同_间接寻址不同问题?求解决!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
错误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语言间接级别不同_间接寻址不同问题?求解决!相关推荐
- c语言间接级别不同_例9:C语言实现成绩的等级判别
例9:C语言实现按照考试成绩的等级输出百分制分数段,A等为85-100分,B等为70-84分,C等为60-69分,D等为60分以下. 解题思路:这是一个多分支选择问题,根据百分制分数将学生成绩分为4个 ...
- c语言间接级别不同_一个超复杂的间接递归——C语言初学者代码中的常见错误与瑕疵(6)...
问题: 在该文的最后,曾提到完成的代码还有进一步改进的余地.本文完成了这个改进.所以本文讨论的并不是初学者代码中的常见错误与瑕疵,而是对我自己代码的改进和优化.标题只是为了保持系列的连续性. 改进 程 ...
- java 数组越界异常_数组越界异常 求解决!!!
源自:4-3 滚动状态判断与处理 数组越界异常 求解决!!! package com.example.imooc; import java.io.BufferedInputStream; import ...
- 语言转4字节数据整型_R语言与RGui平台_数据类型_向量_4
计算机语言RGui平台上的R语言__数据类型_向量_4 R语言进阶4_数据类型_向量1 咱们而可以从自然语言(汉语.英.法.俄.德.日.拉丁.伊斯兰.等等)的基本特征来看--词汇.句子.段落.结构.文 ...
- 谭浩强c语言第六章兔子数列,谭浩强 C语言 第6章_循环.ppt
谭浩强 C语言 第6章_循环 第六章 本章要点 循环的基本概念 不同形式的循环控制 多重循环问题 主要内容 6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循 ...
- 只能输入字母的c语言程序设计教程课后答案,c语言程序设计基础教程_习题答案20120319...
<c语言程序设计基础教程_习题答案20120319>由会员分享,可在线阅读,更多相关<c语言程序设计基础教程_习题答案20120319(54页珍藏版)>请在技术文库上搜索. 1 ...
- c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc
C语言程序设计(B)试卷_杨崇联(A1) 江 西 理 工 大 学 考 试 试 卷 试卷编号: 20 11 -20 12 学年第 2 学期 课程名称: C语言程序设计(B) 考试时间: 年 月 日考试性 ...
- c语言数组数据用指针查找,c语言数组与指针_指针篇_2011.ppt
c语言数组与指针_指针篇_2011 指 针 6.2 指针的概念6.3 指针与数组6.4 字符串的指针6.5 指针数组和指向指针的指针;6.2.1 地址与指针的概念 ;指针的概念;内存地址;2.数组与地 ...
- c语言运行时更入下一行,C语言高级语言程序设计(一)_第二章 C程序设计基础(二).ppt...
C语言高级语言程序设计(一)_第二章 C程序设计基础(二) * 问a,b能否交换?不能.示例 传值调用 如何改变参数的值?在后续章节中介绍 下:传值 * 传值的好处 下:问题3.2 * * * 使用范 ...
- C语言——选择法排序_数组
C语言--选择法排序_数组 问题描述 对于任意给定的含有十个数字的一维数组,如何进行排序? 编程思想: 让a[0]最小,分别与a[1].a[2]-a[9]比较: 让a[1]最小,分别与a[2]-a[9 ...
最新文章
- 利用二极管的P-N结的I-V特性测量Boltzmann常数
- 系统分析师零散知识点
- 2021春季每日一题【week4 完结】
- iOS中AutoLayer自动布局流程及相关方法
- NC16886 炮兵阵地
- VC++ 深入详解 学习笔记(5) -- 修改窗口样式续
- php 正则mysql语句_MySQL正则表达式搜索 - mysql数据库栏目 - 自学php
- 项目开发流程_绿维文旅:旅游项目开发模式与流程
- 告别30元!喜茶承诺今年绝不涨价:不再推29元以上产品
- 如何使用 淘宝 NPM 镜像
- 机器学习 | 算法笔记- 决策树(Decision Tree)
- docker可用容量 查看_查看docker容器的内存占用
- beanstalkd协议解读(中文翻译加个人理解)
- 【win11】你不能不会的技巧(持续更新)
- Android Studio 高版本无法执行Java main方法的问题
- iPhone手机蓝牙找不到AirPods耳机的解决方法
- iOS直播:评论框与粒子系统点赞动画
- Python爬虫(一)——58同城租房信息
- 【栈和队列】栈的push、pop序列
- “红山开源”创新论坛 | ChinaOSC