| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 470 人关注过本帖
标题:结构体的数组问题
只看楼主 加入收藏
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
结构体的数组问题
例如有一个结构体数组如下:

程序代码:
struct Student
{
    int num;        //学号
    int chengji[4]; //四科成绩
}

int main(void)
{
    int len, t, i;
    struct Student * p;
    p = (struct Student *) malloc (len * sizeof(struct Student));

    //输入数据
    for(i=0; i<len; i++)
    {
        printf("请输入第 %d 个学生的信息:\n", i+1);
        printf("学号:");
        scanf("%d", &p[i].num);
        printf("姓名:");
        scanf("%s", p[i].name);

        for (t=0; t<4; t++)
        {
            printf("第 %d 科成绩:", t+1);
            scanf("%f", p[i].score+t);
        }
       
    }


    //输出数据
    for(i=0; i<len; i++)
    {
        printf("第 %d 个学生的信息:\n", i+1);
        printf("学号: %d ", p[i].num);
        printf("姓名: %s" , p[i].name);

        for (t=0; t<4; t++)
        {
            printf("第 %d 科成绩: %f", t+1, *(p[i].score)[t]);//有错误
        }
    } 



    return 0;

}


为何 *(p[i+t].score)); 不能输出 score 数组的四个值呢?



[ 本帖最后由 lixnkei 于 2010-3-16 11:08 编辑 ]
搜索更多相关主题的帖子: 结构体 
2010-03-16 11:06
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:18 
#include <stdio.h>
#include <stdlib.h>
struct Student
{
    int num;        //学号
    char name[20];
    float score[4]; //四科成绩
};

int main(void)
{
    int len, t, i;
    struct Student * p;
    printf("输入学生数目:\t");
    scanf("%d", &len);
    p = (struct Student *) malloc (len * sizeof(struct Student));

    //输入数据
    for(i=0; i<len; i++)
    {
        printf("第 %d 个学生的信息:\n", i+1);
        printf("学号: ");
        scanf("%d",  &p[i].num);
        printf("姓名: ");
        scanf("%s" , p[i].name);
        for (t=0; t<4; t++)
        {
            printf("第 %d 科成绩: ", t+1, &p[i].score[t]);//有错误
            scanf("%f", &p[i].score[t]);
        }
    }

    //输出数据
    for(i=0; i<len; i++)                                                                                          
    {                                                                                                            
        for (t=0; t<4; t++)                                                                                       
        {                                                                                                         
            printf("第 %d 科成绩: %f\n", t+1, p[i].score[t]);//有错误                                            
        }                                                                                                         
    }
    free(p);                                                                                                      
    return 0;                                                                                                     
                                                                                                                  
}                  
2010-03-16 11:19
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:2 
首先 你定义的数组是整型 输入的确是浮点型 姓名还没定义呢 错误太多了
2010-03-16 11:20
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
收藏
得分:0 
呃。在VC上拷过来后想把问题问得精简一些。。。减多了。。。把结构体里面的姓名和学号删了却忘把下边的姓名删了。。。。


谢谢二楼和三楼的同僚。



[ 本帖最后由 lixnkei 于 2010-3-16 16:55 编辑 ]


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-16 11:31
快速回复:结构体的数组问题
数据加载中...
 
   



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

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