神雕侠 发表于 2019-11-18 11:52:41

使用visual studio 2017 写c 程序出现的问题

大家好,大神们!
我的编程爱好者,喜欢在家自学编程的知识。
以下代码是小甲鱼老师的,我用visual studio 2017按照网上的方式,弄成写c语言的环境。但是还是出现了一些错误,我不知道是什么原因,是否可以解决。请大侠们告诉怎么做?
错误信息是:
C4047        “ = ”:“student * ”与“int”的间接级别不同        lianbiao        d : \cyuyan\lianbiao\lianbiao\lianbiao.c        21

C2040        “creat” : “student * ()”与“int()”的间接寻址级别不同        lianbiao        d : \cyuyan\lianbiao\lianbiao\lianbiao.c        29

C4013        “creat”未定义;假设外部返回 int        lianbiao        d : \cyuyan\lianbiao\lianbiao\lianbiao.c        21

C2371        “print” : 重定义;不同的基类型        lianbiao        d : \cyuyan\lianbiao\lianbiao\lianbiao.c        67

C4013        “print”未定义;假设外部返回 int        lianbiao        d : \cyuyan\lianbiao\lianbiao\lianbiao.c        22


******************************************************************************下面是代码,跟老师的一样。
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

#define LEN sizeof(struct student) //student 结构的大小

struct student
{
        int num;
        float score;
        struct student *next;

};

int n;//全局变量,用来记录存放了多少数据。

void main()
{
        struct student *stu;

        stu = creat();
        print(stu);

        print("\n\n");
        system("pause");
}

struct student *creat()
{
        struct student *head;
        struct student *p1, *p2;

        p1 = p2 = (struct student *)malloc(LEN); //LEN是student结构的大小

        printf("Please enter the num :");
        scanf_s("%d", &p1->num);
        printf("Please enter the score :");
        scanf_s("%f", &p1->score);

        head = NULL;
        n = 0;

        while (p1->num)
        {
                n++;
                if (1 == n)
                {
                        head = p1;
                }
                else
                {
                        p2->next = p1;
                }

                p2 = p1;
                p1 = (struct student *)malloc(LEN);

                printf("\nPlease enter the num :");
                scanf_s("%d", &p1->num);
                printf("Please enter the score :");
                scanf_s("%f", &p1->score);
        }
        p2->next = NULL;
        return head;
}

void print(struct student *head)
{
        struct student *p;
        printf("\nThere are %d records!\n\n", n);

        p = head;
        if (NULL != head)
        {
                do
                {
                        printf("学号为%d的成绩是: %f\n", p->num, p->score);
                        p = p->next;
                } while (p);

        }
}

newu 发表于 2019-11-18 20:51:20

在错误列表中点击第一个错误,然后对比小甲鱼的代码,观察是否有打错的地方

其次,将报错的地方放到百度里搜索一下
页: [1]
查看完整版本: 使用visual studio 2017 写c 程序出现的问题