南风|西洲 2022-05-17 00:01 采纳率: 100%
浏览 589
已结题

[Error] expected expression before 'Student' 这个报错是什么意思!

问题遇到的现象和发生背景

需要实现用户注册,然后只有老用户注册完才可以登录。相把注册的信息输到结构体当中,再通过结构体和在登录界面的比较,实现老用户登录,否则就需要去注册。这个报错没解决,后面的代码也就没写下去
!!

运行结果及报错内容

73 14 [Error] expected expression before 'Student'
122 11 [Error] expected expression before 'Student'

问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<string.h>

typedef struct information//结构体 
{
    char name[10] ;//名字 
    int stn[10];//学号
    char psw[10];//密码 
}Student;


void menu();//主菜单 
void Register();//新用户注册 
void Login();

int main(void)
{
    struct Student;
    int choice;
    loop1:
    menu();    
    printf("请选择:");
    scanf("%d",&choice);
    switch(choice)
    {
        case 1:
        {
            Register();
            goto loop1;//注册完成回到主菜单界面 
            break;
        }    
        case 2:
        {
        
        break;    
        };
        case 3:break;
        default :printf("输入错误!");     
    }
    system("pause");
    system("cls");
    
    
}
/*主菜单*/
void menu()
{
    printf("欢迎进入智慧校园门户系统!\n");
    printf("1、新用户\n");
    printf("2、老用户\n"); 
    printf("3、退出系统\n");
}

/*新用户注册*/ 
void Register()
 {
     struct Student;
    char name[10];
    char sex[10];
    char mail[10];
    int stn;
    char tel[10];
    char idn[10];
    char psw1[10];
    char psw2[10];
    system("CLS");
    printf("姓名:");
    scanf("%s",&name);
    printf("性别:");
    scanf("%s",&sex);
    printf("学号:");
    scanf("%d",&Student.stn);
    

    loop1:
    printf("身份证号:");
    scanf("%s",&idn);
    while(strlen(idn)!=18) //确认身份证号码是否为有效位数18位 
    {
        printf("请输入有效信息!\n");
        printf("身份证号:");
        scanf("%s",&idn);
    }
    printf("电话:");
    scanf("%s",&tel);
    while(strlen(tel)!=11) //确认电话号码是否为有效位数11位 
    {
        printf("请输入有效位数的电话号码!\n");
        printf("电话:");
        scanf("%s",&tel);
    }
    printf("邮箱:");
    scanf("%s",&mail);
    printf("密码:");
    scanf("%s",&psw1);
    printf("确认新密码:");
    scanf("%s",&psw2);
    while(psw1!=psw2) //确认两次密码是否一致 
    {
        printf("密码不一致\n请再次确认密码!\n");
        printf("密码:");
        scanf("%d",&psw1);
        printf("确认新密码:");
        scanf("%d",&psw2);
    }    
    
    
    
    printf("注册成功!"); 
    system("pause");
    system("cls");
}

/*老用户登录 */
void Login()
{
    struct Student;
    int stn1;
    print("学号:");
    scanf("%d",stn1);
    if(stn1==Student.stn);
}

主要是自己是真的不会c语言,结构体这些都是自己学的,什么也都没教,scanf输入结构体 新用户注册,老用户登录 错了嘛

  • 写回答

1条回答 默认 最新

  • Duang~Lucky.Mr.Li 2022-05-17 01:44
    关注

    好巧 我也是刚学的结构体
    看看第57行 (18行 就是类似的吧,总之就是一种问题)
    是第57行的问题,你第57行并没有实际定义一个结构体变量啊

    typedef struct information//结构体 
    {
        char name[10] ;//名字 
        int stn[10];//学号
        char psw[10];//密码 
    }Student;
    

    可能是你没搞懂这段代码的意思,这段代码是把 struct information 命名成了 Student,意思就是写代码的时候我们可以直接使用Student来代替 struct information 的书写

    例如第57行 Student student_s; 意思就是定义了结构体变量 student_s

    问题就出现在这

    还有,那个学号我觉得应该定义成char类型的数组比较好,当作字符串处理学号,可以尝试下

    说实话,我觉得你代码写的停美观的 哈哈 向你学习

    马上期末考试了 加油加油

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 创建了问题 5月17日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?