| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2878 人关注过本帖
标题:出错,提示说未声明该变量。
只看楼主 加入收藏
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
结帖率:100%
收藏
 问题点数:0 回复次数:6 
出错,提示说未声明该变量。
程序代码:
#include <stdio.h>
#define NUMBER 4
#define CSIZE 4

void students(void);

struct mane{//姓名

    char surname[NUMBER];
    char called[NUMBER];
};

struct subjects{//三科成绩

    float chinese[NUMBER];
    float mathematical[NUMBER];
    float english[NUMBER];
};

struct student{

    struct mane handle[NUMBER];
    struct subjects grade[NUMBER];
    float average[NUMBER];//三科平均分

};

int main(void)
{
    struct student scores[CSIZE];
    stdudets();
}

void stdudets (void)
{
    int i;
    for(i=0;i<=CSIZE;i++)

    {
    printf("请输入学生姓:");
    gets("cores.handle.surname[i]");
    printf("请输入学生名:");
    gets("cores.handle.called[i]");
    printf("请输入语文成绩:");
    scanf("%d",&scores.grade.chinese[i]);
    printf("请输入数学成绩:");
    scanf("%d",&scores.grade.mathematical[i]);
    printf("请输入英语成绩:");
    scantf("%d",&scores.grade.english[i]);
    return 0;
    }
}






我不是在main函数那里声明了吗?
搜索更多相关主题的帖子: NUMBER void struct printf 输入 
2018-10-31 20:47
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
函数里声明的局部变量只在函数里可见
要就放到函数外声明(全局)

[此贴子已经被作者于2018-10-31 20:54编辑过]

2018-10-31 20:53
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
回复 2楼 吹水佬
把struct student scores[CSIZE];移出main函数就可以了?移出后还是提示说
40    20    E:\代码\zjC\P421 14.18 5(未完成).c    [Error] request for member 'grade' in something not a structure or union
42    20    E:\代码\zjC\P421 14.18 5(未完成).c    [Error] request for member 'grade' in something not a structure or union
44    21    E:\代码\zjC\P421 14.18 5(未完成).c    [Error] request for member 'grade' in something not a structure or union



[此贴子已经被作者于2018-10-31 21:19编辑过]

2018-10-31 21:16
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:396
专家分:2640
注 册:2018-3-30
收藏
得分:0 
你这结构体感觉没入门啊...

给你改来可以编译通过了,

程序代码:
#include <stdio.h>
#define NUMBER 4
#define CSIZE 4

struct mane{//姓名

    char surname[NUMBER];
    char called[NUMBER];
};

struct subjects{//三科成绩

    float chinese;
    float mathematical;
    float english;
};

struct student{

    struct mane handle;
    struct subjects grade;
    float average;//三科平均分

};
void stdudets(struct student scores[]);
int main(void)
{
    struct student scores[CSIZE];
    stdudets(scores);
}

void stdudets (struct student scores[])
{
    int i;
    for(i=0;i<=CSIZE;i++) {
        printf("请输入学生姓:");
        gets(scores[i].handle.surname);
        printf("请输入学生名:");
        gets(scores[i].handle.called);
        printf("请输入语文成绩:");
        scanf("%d",&scores[i].grade.chinese);
        printf("请输入数学成绩:");
        scanf("%d",&scores[i].grade.mathematical);
        printf("请输入英语成绩:");
        scanf("%d",&scores[i].grade.english);
        return ;
    }
}

saber,别哭.
2018-10-31 22:42
梦月神游
Rank: 2
来 自:灵界-异空间
等 级:论坛游民
威 望:4
帖 子:23
专家分:98
注 册:2017-3-11
收藏
得分:0 
我刚刚看,看到上贴版主回了……
我不太懂怎么改,只能按照自己的意思来将就看看
程序代码:
#include <stdio.h>
#define NUMBER 4
#define CSIZE 4

void students(void);

struct mane{//姓名

    char surname[NUMBER];
    char called[NUMBER];
};

struct subjects{//三科成绩

    float chinese[NUMBER];
    float mathematical[NUMBER];
    float english[NUMBER];
};

struct student{

    struct mane handle[NUMBER];
    struct subjects grade[NUMBER];
    float average[NUMBER];//三科平均分

};

void stdudets (void)
{
    int i;
    struct student stu;
    for(i=0;i<CSIZE;i++)//这里应该用小于

    {
    printf("请输入学生姓:");
    gets(stu.handle[i].surname);
    printf("请输入学生名:");
    gets(stu.handle[i].called);
    /*printf("请输入语文成绩:");
    scanf("%d",&student.grade.chinese[i]);
    printf("请输入数学成绩:");
    scanf("%d",&scores.subjects.grade.mathematical[i]);
    printf("请输入英语成绩:");
    scantf("%d",&scores.grade.english[i]);*/
    }
    return 0;//return 应该放在循环体外面
}

int main(void)
{
    stdudets();
}


下面那个我觉得还是放在结构体student里面的,题主的意思不是很明确我先保留一下,还请各位大神多多指教
2018-10-31 23:01
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
回复 4楼 幻紫灵心
谢谢,其实我也不知道我到底入没入门,毕竟整本Primer plus c都是自学的,而且我还不是学计算机专业的。手头上就一本书,一台电脑,不懂的就上来问,有大佬愿意讲详细一点的话自己就看得懂,如果是像2楼那样的话就懵逼了。我也很无奈。
2018-11-01 07:49
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
回复 5楼 梦月神游
谢谢!
2018-11-01 07:49
快速回复:出错,提示说未声明该变量。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017140 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved