cxk521aoligei 2021-09-07 17:31 采纳率: 90.9%
浏览 525
已结题

c语言返回3221225477

写的学生成绩管理系统,还没写完,只写个1个功能两个函数,运行有异常,返回值为3221225477
代码如下

struct Student {
    
    char num[10];//学号
        char name[15];//姓名 
        char major[10];//专业computer,softwear,network
        int classNo;//班级 
        int score[3];//3门课的成绩  
        int sum;//3门课的总成绩 
        struct Student *next;//指针    88u

    
    
    
};
int n,a;
struct Student * input();

void save(struct Student 
```c
struct Student * input()
{
    n=0;
    struct Student *head;
    struct Student *p1,*p2;
    head=(struct Student *)malloc(len);
    printf("请输入学生人数:");
    scanf("%d",&a);
    printf("请录入这%d名学生的信息:\n",a);
    while(n<a)
    {
        p1=(struct Student*)malloc(sizeof(len));
        scanf("%s-%s-%s-%d-%d-%d-%d",&p1->num,&p1->name,&p1->major,&p1->classNo,&p1->score[0],&p1->score[1],&p1->score[2]);
        p1->sum=0;
        p1->sum=p1->score[0]+p1->score[1]+p1->score[2];
        n++;
        if(n==1)
        {
            head=p1->next;
            
        }
        else
        {
            p2->next=p1;
            p2=p1;
            
            
            
        }
        
        
    }
    p2->next=NULL;
    
    
    
    
    
    
    return(head);
}
void save(struct Student *head)
{
    struct Student *p1;
    char s[15];
    p1=head->next;
    FILE *fp;
    printf("亲输入要建立的文件名:\n");
     scanf("%s",&s);
     if((fp=fopen("s.txt","wb"))==NULL)
     {
         
         printf("打开文件失败");
         exit(0); 
     }
    while(p1!=NULL)
    {
        fwrite(p1,len,1,fp);
        p1=p1->next;
    }
    
    
    
}


```c
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define len  sizeof(struct Student)
#include"声明.h"
#include"自定义函数.h"



int main(void) 
{
    char s[15];
    
    
    while(1)
    {
        printf("请输入功能编号完成相应功能\n");
        printf("1.输入学生信息并保存\n");
        printf("2.从文件中读取学生信息,并建立链表\n");  
        printf("3.按学号删除学生信息\n"); 
        printf("4.按学号插入学生信息\n"); 
        printf("5.显示当前文件信息\n"); 
        printf("6.查找总成绩最高的学生\n");
        printf("7,寻找指定学号或姓名的学生并修改该学生信息 \n");
        printf("8.查找某个专业、某门课程的成绩小于某个分数的学生\n");
        printf("9.删除某个班级、某门课程的成绩小于某个分数的学生\n");
        printf("10.按照姓名排序\n");
        printf("11.保存当前信息\n");
        printf("其他,推出系统\n");


int x;
struct Student *h;
printf("亲输入编号:");
scanf("%d",&x); 
switch(x)
{
    case(1):h=input();save(h);break;
        
        
    
    
    
    
    
    default: break;
}
    }    
    
    
 
    return 0;
}

运行结果

img

  • 写回答

4条回答 默认 最新

  • 信仰869 2021-09-07 18:35
    关注

    我感觉你这个sizeof(len)有问题

    p1=(struct Student*)malloc(sizeof(len));
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月20日
  • 已采纳回答 9月14日
  • 专家已采纳回答 9月11日
  • 创建了问题 9月7日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图