C++结构体问题
- 提问者网友:姑娘长的好罪过
- 2021-02-12 18:12
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {} //这句是什么意思。。
};
- 五星知识达人网友:青灯有味
- 2021-02-12 19:26
你可以把它想成 是 class.
上面的代码 相当于:
class TreeNode {
public:
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {} //这句是什么意思。。
// 这是 类的 构造函数, 以 x 初始化 类中的 val 字段, NULL 初始化 left 和 right
};
- 1楼网友:几近狂妄
- 2021-02-12 20:12
#include "stdio.h" #include "stdlib.h" #include "conio.h" struct stu{ char name[20]; int id; char qqnumber[20]; char email[20]; }stud[50];
int count=0;
int add() { stu a; char x,j; for(int i=0;i<50;i++) { system("cls"); int t=0; printf("请输入姓名:"); scanf("%s",&a.name); for(int k=0;k<count;k++){ if(stud[k].name==a.name) { t=1; } } if(t==1) printf("输入的姓名已存在,请重新输入\n"); else{ printf("请输入该人的id:"); scanf("%d",&a.id); printf("请输入该人的qq号码:"); scanf("%d",a.qqnumber); printf("请输入该人的email:"); scanf("%s",a.email); printf("确定要增加该记录吗?(y/n)"); scanf("%c",&x); scanf("%c",&x); if(x=='y') { stud[count]=a; count++; } printf("要继续增加记录吗?(y/n)"); scanf("%c",&j); scanf("%c",&j); if(j=='n') break; } printf("\n按任意键返回主菜单:"); getch(); return 0; }
return 1; } int show() { system("cls"); for(int i=0;i<count;i++) { printf("姓名:%-16s身份证号码:%-8dqq号码:%d\n",stud[i].name,stud[i].id,stud[i].qqnumber); printf("email:%s\n",stud[i].email); printf("---------------------------------------------------------------------\n"); } printf("\n按任意键返回主菜单:"); getch(); return 0; }
int query1() { char x[20]; char k; while(true) { system("cls"); int t=-1; printf("请输入要查询的qq号码是:"); scanf("%c",&x); for(int i=0;i<count;i++){ if(stud[i].qqnumber==x) t=i; } if(t==-1) printf("您所查询的qq信息不存在,"); else{ printf("姓名:%-16s身份证号码:%-8dqq号码:%d\n",stud[i].name,stud[i].id,stud[i].qqnumber); printf("email:%s\n",stud[i].email); printf("---------------------------------------------------------------------\n"); } printf("是否继续查询?(y/n)"); scanf("%c",&k); scanf("%c",&k); if(k=='n') break; } printf("\n按任意键返回主菜单:"); getch(); return 0; }
int update(){ char x[20]; stu a; char k,j; while(true){ system("cls"); int t=-1; printf("请输入要修改的qq号码:"); scanf("%c",&x); for(int i=0;i<count;i++) { if(stud[i].qqnumber==x) t=i; } if(t==-1) printf("您所要修改的学生信息不存在,"); else{ printf("姓名:%-16s身份证号码:%-8dqq号码:%d\n",stud[i].name,stud[i].id,stud[i].qqnumber); printf("email:%s\n",stud[i].email); printf("---------------------------------------------------------------------\n"); printf("确定要修改该记录吗?(y/n)"); scanf("%c",&k); scanf("%c",&k); if(k=='y') { printf("请输入新的姓名:"); scanf("%s",a.name); printf("请输入新的身份证号码:"); scanf("%d",&a.id); printf("请输入新的email地址:"); scanf("%s",a.email); printf("修改成功,"); } } printf("是否继续修改?(y/n)"); scanf("%c",&j); scanf("%c",&j); if(j=='n') break; } printf("\n按任意键返回主菜单:"); getch(); return 0; }
int grt1() { int choice=0; do{ system("cls"); printf("\t----------------学生信息管理系统----------------\n\n"); printf("\t\t在菜单中选择以下的操作类型\n"); printf("\t\t1.增加记录\n"); printf("\t\t2.显示所有学生信息\n"); printf("\t\t3.根据学号查询单个学生信息\n"); printf("\t\t4.修改记录\n"); printf("\t\t请输入你的选择:"); scanf("%d",&choice); switch(choice) { case 1: add(); break; case 2: show(); break; case 3: query1(); break; case 4: update(); } }while(choice!=4); return 0; }
int main() { //char x[10]; printf("\t----------------学生信息管理系统----------------\n\n"); grt1(); return 0; }
出问题原因是int add()函数少了个},这是马虎所致,刚学编程都会有这样的问题,但是不要让马虎养成习惯。
还有就是有些类型定义的不对,我给你修改了一些,我只是编译通过了,没有错误,但至于是不是你要的那样我没有看,所以剩余的要靠你自己了,真正弄懂收获会很大的。祝你好运,加油哦!