说是"student *" 类型的实参与 "int *" 类型的形参不兼容,各位大佬可以怎么改呀?
typedef struct student {
int num;
int score;
int sciability;
int practise;
int committee;
}student;
student stu[100] = { 1,100,80,80,90 };
printf("请输入一个班级的总人数: ");
scanf_s("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入学生的学号,学生的绩点 ,科研能力,实践能力值,社会服务值 ");
scanf("%d,%d,%d,%d,%d", &stu[i].num, &stu[i].score, &stu[i].sciability, &stu[i].practise, &stu[i].committee);}
stumanager(stu,n)
void stumanager(int stu[], int n){}
stumanager这个函数有问题吧,stu是结构体指针,int stu[]是int型指针,所以有问题。
int stu[]改成student stu[]
如果解决您的问题,请点赞、采纳,谢谢!
void stumanager(student stu[], int n)
你的方法函数定义有问题吧?入穿是硬的类型的,你把它改成student类型。
【以下回答由 GPT 生成】
根据代码,我们可以发现问题出在stumanager
函数的参数类型不匹配。问题的解决方法是将stumanager
函数的第一个参数从int stu[]
改为student stu[]
,以匹配student
类型的数组。修改后的代码如下:
#include <stdio.h>
typedef struct student {
int num;
int score;
int sciability;
int practise;
int committee;
} student;
void stumanager(student stu[], int n) {
// 这里写你需要做的事情
printf("在stumanager函数中,你可以处理学生stu数组中的数据\n");
}
int main() {
student stu[100] = {{ 1, 100, 80, 80, 90 }};
int n, i;
printf("请输入一个班级的总人数:");
scanf_s("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入学生的学号、学生的绩点、科研能力、实践能力值、社会服务值:");
scanf("%d,%d,%d,%d,%d", &stu[i].num, &stu[i].score, &stu[i].sciability, &stu[i].practise, &stu[i].committee);
}
stumanager(stu, n);
return 0;
}
这样修改后,函数的参数类型与实参类型相匹配,编译时就不会报类型不兼容的错误了。