| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 798 人关注过本帖
标题:设计的结构体,网友说有问题,不过找不出问题所在
只看楼主 加入收藏
linos
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-27
收藏
得分:0 
回复 8 楼 kwxx
不懂。。
2014-04-27 21:09
linos
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-27
收藏
得分:0 
回复 10 楼 嗜血老妖
可以帮我梳理一下吗?
2014-04-27 21:11
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:12 
#include<stdio.h>
#include<stdlib.h>

typedef struct {
    char name[20];
    char title[20];
    char ssnum[20];
    double salary;
    int witholding ;
} employeeRecordT;

typedef struct {
    int num;
    employeeRecordT **info;
} *payrollT;

payrollT Getpayroll(payrollT result)
{
    int i;
    result = (payrollT) malloc(sizeof(payrollT));
    scanf("%d",&result->num); // 输入员工个数

    result->info = (employeeRecordT **) malloc(sizeof(employeeRecordT*) * result->num );
    //使得info指向一个包含result->num个元素的指针数组。
    for(i=0;i<result->num;i++)
    {
        result->info[i]= (employeeRecordT *) malloc(sizeof(employeeRecordT));   
        printf ("%d:",i+1);
        //输入每个员工信息
        scanf("%s%s%s%lf%d",result->info[i]->name,
                            result->info[i]->title,
                            result->info[i]->ssnum,
                            &result->info[i]->salary,
                            &result->info[i]->witholding);
    }
    return result;
}

int main()
{
    int i;
    payrollT emp;
    emp = Getpayroll(emp);
        //输出
    printf("How many employees: %d\n",emp->num);
    for ( i = 0; i < emp->num ;  i++)    {
        printf("Employee #%d\n",i+1);
        printf("    Name: %s\n",emp->info[i]->name);
        printf("    Title: %s\n",emp->info[i]->title);
        printf("    SSNum: %s\n",emp->info[i]->ssnum);
        printf("    Salary: %.2lf\n",emp->info[i]->salary);
        printf("    Withholding exemptions: %d\n",emp->info[i]->witholding);
    }
    return 0;
}

2014-04-27 21:18
linos
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-4-27
收藏
得分:0 
回复 13 楼 kwxx
employeeRecordT *info;
就指向结构体 *payrollT 的吗?
请问 有没有结构图 的知识呢?
2014-04-29 14:42
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
"employeeRecordT *info;
就指向结构体 *payrollT 的吗?"   
----employeeRecordT **info; 是指向一个结构体指针数组象图示那样。如果定义成employeeRecordT *info;那只能指向一个结构体变量了(可以是结构体数组的一个元素)。但不管是哪种跟图示都是不一致的。

2014-04-29 18:33
快速回复:设计的结构体,网友说有问题,不过找不出问题所在
数据加载中...
 
   



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

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