void insert(struct votesystem v, char name)//插入 { int s; char a[2]; search(v, name, &s); printf("提名学生信息格式如下:\n"); printf("\t例:学号:19101010\n"); printf("\t例:班级:1\n"); printf("\t例:专业:数学师范\n"); printf("\t例:年级:二\n"); printf("\t例:突出事迹:国家二等奖学金\n"); strcpy(v->st[s].name, name); printf("学号:\t"); scanf("%d", &v->st[s].num); printf("班级:\t"); scanf("%d", &v->st[s].Class); printf("专业:\t"); getchar(); fgets(v->st[s].major, 30, stdin); printf("年级:\t"); fgets(v->st[s].grade, 10, stdin); printf("突出事迹:\t"); fgets(v->st[s].achievement, 200, stdin); //提名即为投一票,当前元素加一 v->st[s].number = 1; //提名即为投一票 v->count++; } 有错误吗
时间: 2024-02-13 12:06:22 浏览: 125
有几个错误:
1. 函数的第一个参数应该是指向结构体的指针,而不是结构体本身,因为需要在函数中修改结构体的成员变量。
2. 函数的第二个参数应该是一个指向 char 的指针,而不是 char 类型的变量。
3. 在函数中使用 strcpy 函数时,应该使用 -> 运算符而不是 . 运算符,因为此时的第一个参数是一个指向结构体的指针。
下面是修改后的代码:
```
void insert(struct votesystem *v, char *name) {
int s;
char a[2];
search(v, name, &s);
printf("提名学生信息格式如下:\n");
printf("\t例:学号:19101010\n");
printf("\t例:班级:1\n");
printf("\t例:专业:数学师范\n");
printf("\t例:年级:二\n");
printf("\t例:突出事迹:国家二等奖学金\n");
strcpy(v->st[s].name, name);
printf("学号:\t");
scanf("%d", &v->st[s].num);
printf("班级:\t");
scanf("%d", &v->st[s].Class);
printf("专业:\t");
getchar();
fgets(v->st[s].major, 30, stdin);
printf("年级:\t");
fgets(v->st[s].grade, 10, stdin);
printf("突出事迹:\t");
fgets(v->st[s].achievement, 200, stdin);
//提名即为投一票,当前元素加一
v->st[s].number = 1;
//提名即为投一票
v->count++;
}
```
阅读全文