求大神看一下我的这个C语言哪里出错了

2024-11-11 14:48:05
推荐回答(5个)
回答1:

#include 
#include 

struct student
{
    int num;
    char name[20];
    double score[3];
};
void print(student* stu);
void main()
{
    student stu;
    stu.num = 8;
    strcpy(stu.name, "Fishc.com" );
    stu.score[0] = 99;
    stu.score[1] = 89;
    stu.score[2] = 98;
    print(&stu);
}
void print(student* stu)
{
    printf("num  : %d\n", stu->num);
}

主要错误:结构体使用和赋值,对照一下吧。

回答2:

因为你定义的结构体在miain函数内部,函数print无法获得,所以print的参数就不完全,把student结构体定义成全局的即可(即放在main外面)

回答3:

struct student定义在main函数里面,在定义print函数的时候并没有student student的声明,所以报错,你可以把student student的声明放在main函数的外面

回答4:

void print( struct student ); 你的这个应该放在void main整个函数的前面,不能在里面

回答5:

...\main.cpp(26) : error C2027: use of undefined type 'student'
...\main.cpp(24) : see declaration of 'student'
编译错误的意思是print的参数stu没有定义类型,原因是你的student类型定义在main函数里,只在main函数内部起作用。修改方法是把这个定义提到main外头就可以了。

修改后代码如下,经测试运行成功:
#include
#include
struct student
{
int num;
char name[20];
double score[3];
}stu;
void main()
{
void print( struct student );
stu.num = 8;
strcpy( stu.name, "Fishc.com" );
stu.score[0] = 99;
stu.score[1] = 89;
stu.score[2] = 98;
print( stu );
}
void print( struct student stu )
{
printf("num : %d\n", stu.num);
}