电脑网络

toofewactualparameters

346 浏览

too few actual parameters

1 个回答

李永生用户头像
李永生 回答于 2024-07-20
已采纳

提问:toofewactualparameters

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 2typedef struct Member{int number;char name;char gender;int birth;int yuanxi;char zhiwu;int sushehao;int phonenumber;};void menu(){printf("简单社团管理系统\n"); printf("选择想要进行的操作:\n");printf("1添加学生信息 2删除学生信息 3修改学生信息 4查找学生信息\n");}void rush(struct Member lib[])//新成员入社{int i=1;for(i=1;i<N;i++){printf("请输入学号");scanf("%d",&lib[i].number);printf("请输入姓名");scanf("%d",&lib[i].name);printf("请输入性别");scanf("%s",&lib[i].gender);printf("请输入生日");scanf("%d",&lib[i].birth);printf("请输入院系");scanf("%s",&lib[i].yuanxi);printf("请输入职务");scanf("%s",&lib[i].zhiwu);printf("请输入宿舍号");scanf("%d",&lib[i].sushehao);printf("请输入手机号");scanf("&d",&lib[i].phonenumber);}}main(){int n;menu();printf("输入选项数字");scanf("%d",&n);while(n!=EOF&&n>0&&n<5){switch(n){case 1:rush();break;}}}报错请问哪里不对

网友回答:

有问题。

  • 你看在结构体里面,你定义的是char name;,而在输入学生名字是应该是%c,而你是scanf("%d",&lib[i].name,而且学生名字应该不会只有一个字母吧,所以我建议你用字符数组,并用%s
  • 再看int yuanxi;这是int型,那么输入应该是%d,而你是scanf("%s",&lib[i].yuanxi);,或者你把yuanxi定义错了。应该是char yuanxi.

总之int 对应%d,char 对应%c,%s。

我感觉你好像没有什么基础,却用的十分高端,又是结构体,又是malloc申请内存,还用了menu()申请菜单。建议你先搞好基础。最起码要将数据类型搞清楚。提醒一下,malloc()不会的话,不要乱用,它是从电脑内存里面申请内存,建立堆,栈,如果不释放,导致内存泄露,是会导致你电脑内存缩小,无法再用,严重的话直接崩溃。

还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ

我来回答

相关问题