| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10596 人关注过本帖
标题:关于给结构体数组中成员赋值的问题
只看楼主 加入收藏
kknd84913
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-12-26
结帖率:0
收藏
 问题点数:0 回复次数:3 
关于给结构体数组中成员赋值的问题
代码:
#include <stdio.h>

struct student
{
    char Num[4];
    char name[10];
    int mid;
    int end;
    int ave;
    int zong;
}student[5];


main()
{
    int i,j;
    struct student student[5]={"001","",,,};                           
    printf("\t实例083(练习B)输出学生的期中,期末,平时考核成绩并计算输出综合成绩:\n\n");
    printf("请输入您所要输入成绩的学生的学号:");
    scanf("%d",&i);
    printf("请分别输入该学生的期中,期末,考核成绩\n");
    scanf("%d,%d,%d",&student[i-1].mid,&student[i-1].end,&student[i-1].ave);
    student[i-1].zong=student[i-1].mid*0.3+student[i-1].end*0.5+student[i-1].ave*0.2;
    printf("\t\t学生的总成绩统计表\n");
    printf("\n学号      姓名      期中成绩     期末成绩      考核成绩(平时)     综合成绩\n");
    for(j=0;j<5;j++);
    printf("%s %s %d %d %d %d\n\n",student[j].Num,student[j].name,student[j].mid,student[j].end,student[j].ave,student[j].zong);
}

我想在程序里面先给结构体数组中的学生编号项,姓名项先赋值,但是貌似结构体数组不支持缺项赋值啊,(这句struct student student[5]={"001","",,,};不知道要怎么写了)还请知道怎么办的达人指点下!

[ 本帖最后由 kknd84913 于 2013-1-18 17:23 编辑 ]
搜索更多相关主题的帖子: 结构体 include 期末 
2013-01-18 17:22
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
你现都赋值   然后在覆盖就可以了   
把结构体里面的字符数组改成字符指针就可以初始化了

有心者,千方百计;无心者,千难万难。
2013-01-18 18:46
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
你在全局范围内定义了一个student,然后又在main里定义了一个同名的student,全局的student不就被隐藏了吗?你到底想用哪个呢?
给你一段代码,你可以看看:
程序代码:
#include <stdio.h>

typedef struct {
    char a[10];
    int b;
} S;

int main(void)
{
    S a[] = {
        {"A"},
        {"B"},
        {"C"},
    };
    int i;
    for (i = 0; i < sizeof a / sizeof *a; ++i)
        printf("%s %d\n", a[i].a, a[i].b);
    return 0;
}
/* 输出:
A 0
B 0
C 0
*/

My life is brilliant
2013-01-18 18:57
羽VS翼
Rank: 2
等 级:论坛游民
帖 子:26
专家分:43
注 册:2013-1-17
收藏
得分:0 
这个代码你看一下:我把上个仁兄的代码改了下,希望对你有用
#include <stdio.h>

typedef struct {
    char a[10];
    char c[2];
    int b;
} S;

int main(void)
{
    S a[] = {
        {"A"},
        {"B"},
        {"C"},
    };
    int i;
    for (i = 0; i < sizeof a / sizeof *a; ++i)
    {
        printf("a=%s c=%s b=%d\n", a[i].a, a[i].c, a[i].b);
        printf("&a=%p &c=%p &b=%p\n",&a[i].a,&a[i].c,&a[i].b);
    }
   
    return 0;
}

结果:a=A c= b=0
&a=0026FCD8 &c=0026FCE2 &b=0026FCE4
a=B c= b=0
&a=0026FCE8 &c=0026FCF2 &b=0026FCF4
a=C c= b=0
&a=0026FCF8 &c=0026FD02 &b=0026FD04
2013-01-19 10:01
快速回复:关于给结构体数组中成员赋值的问题
数据加载中...
 
   



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

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