| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:求助,关于结构体
只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
求助,关于结构体
想编写input(),output()两个函数,涉及到结构体,系统编译通不过,不知道该怎么改,请大家帮看看
程序代码:
#include<stdio.h>
struct Student
{
    int num;
    char name[10];   /*定义数据结构并定义该结构的有3个元素的数组*/
    int score[3];
};struct Student stu[3];
main()
{   struct Student *p; /*定义一个结构体的指针*/
    (struct Student*) input();/*声明一个返回结构体指针的无参input函数*/
     output(struct Student*);/*声明一个以结构体指针为参数的无返回output函数*/
    p=input();   /*指针p接收input返回值*/
    output(p);  /*指针p作为函数output的参数*/
    return 0;
}
input()
{

    int i,j;
    for(i=0;i<3;i++)
    {   printf("input the %d of 3",i+1);
        printf("\nnum:");
        scanf("%d",&stu[i].num);
        printf("\nname:");
        scanf("%s",stu[i].name);
        for(j=0;j<3;j++)
        {
            printf("\nscore%d:",j+1);
            scanf("%d",&stu[i].score[j]);

        }   /*此处循环输入结构体数组的内容*/
    }
    return(stu);/*返回结构体指针*/
}
output(stu)
{
    int i,j;
    printf("num         name         score1      score2     score3");
    for(i=0;i<3;i++)
    {
        printf("%d%s",stu[i].num,stu[i].name);
        for(j=0;j<3;j++)
        {                   /*输出*/
            printf("%d",stu[i].score[j]);
            printf(""\n);
        }
    }
}
第11行output(struct Student*);/*声明一个以结构体指针为参数的无返回output函数*/
处一直报错,实在不知道怎么改好了。。
帮我看看,拜谢。。。。
搜索更多相关主题的帖子: color 结构体 系统 
2012-11-10 16:43
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 楼主 yaobao
兄弟, 以前是写什么代码的...     
2012-11-10 17:24
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你这个跟结构体有什么关系,用其他类型你也这么写吗?

总有那身价贱的人给作业贴回复完整的代码
2012-11-10 17:46
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
我就一菜鸟,还是很菜的那种,今天才学到结果体这,就想练习运用它,想要用能指向结构体的指针做函数的参数,可就是不成。
呃呃呃,是不是C不允许这么做呀。
困惑

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-10 18:01
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
谁能告诉我该怎么改啊
output(struct Student*);/*声明一个以结构体指针为参数的无返回output函数*/
一直报错

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-10 18:29
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:5 
这样写系统默认output返回int,应该显示的指明是void,说明这个函数无返回值。

output(stu)应该修改为

void
outut(struct student *stu)

第11行改为
void output(struct student *);

2012-11-10 18:38
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
还是通不过哦,,,,,求指点啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-10 18:53
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
你要return一个结构体指针,函数类型肯定是结构体指针类型啊,什么都不写算怎么回事??


[fly]存在即是合理[/fly]
2012-11-10 19:08
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 8楼 azzbcc
加上了又试,还是通不过,是不是C不让这么写啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-10 19:19
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:15 
改了改
不知道还是楼主的原意?
程序代码:
#include<stdio.h>

struct Student
{
    int num;
    char name[10];   /*定义数据结构并定义该结构的有3个元素的数组*/
    int score[3];
};
struct Student stu[3];

Student* input();
void output(Student* );
int main()
{   struct Student *p; /*定义一个结构体的指针*/
    p= input();/*声明一个返回结构体指针的无参input函数*/
     output(p);/*声明一个以结构体指针为参数的无返回output函数*/
    p=input();   /*指针p接收input返回值*/
    output(p);  /*指针p作为函数output的参数*/
    return 0;
}
Student* input()
{

    int i,j;
    for(i=0;i<3;i++)
    {   printf("input the %d of 3",i+1);
        printf("\nnum:");
        scanf("%d",&stu[i].num);
        printf("\nname:");
        scanf("%s",stu[i].name);
        for(j=0;j<3;j++)
        {
            printf("\nscore%d:",j+1);
            scanf("%d",&stu[i].score[j]);

        }   /*此处循环输入结构体数组的内容*/
    }
    return(stu);/*返回结构体指针*/
}
void output(Student* stu)
{
    int i,j;
    printf("num         name         score1      score2     score3");
    for(i=0;i<3;i++)
    {
        printf("%d%s",stu[i].num,stu[i].name);
        for(j=0;j<3;j++)
        {                   /*输出*/
            printf("%d",stu[i].score[j]);
            printf("\n");
        }
    }
}

只是我已经尽力了

WE GO
2012-11-10 19:32
快速回复:求助,关于结构体
数据加载中...
 
   



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

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