标题:请大家看下问题出在那
只看楼主
mxh2008
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-4-26
结帖率:100%
已结贴  问题点数:10 回复次数:10 
请大家看下问题出在那
#include<stdio.h>
#define fundlen 50
struct funds{
             char bank[fundlen];
             double bankfund;
             char save[fundlen];
             double savefund;
            };
double sum( struct funds * );
char my(struct funds *);
int say(int x,int y);
int main(void)
{//struct funds *e;
 int a=4,b=5;
 struct funds stan={
                    "gar",
                    3024.72,
                    "luck",
                    9237.11
                    };
printf("%f\n",sum(&stan));
printf("%s\n",my(&stan));/*输出有错误*/
//e=&stan;
//printf("%s\n",e->bank);
printf("%d\n",say(a,b));
return 0;
}
double sum( struct funds *p)
{return(p->bankfund+p->savefund);
}
char my(struct funds *e)
{return (e->bank);
}
int say(int x,int y)
{return (x+y);
}
搜索更多相关主题的帖子: void include double 
2010-05-13 10:12
NOMIPS
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:86
专家分:537
注 册:2010-3-31
得分:5 
以下是引用mxh2008在2010-5-13 10:12:24的发言:

#include
#define fundlen 50
struct funds{
             char bank[fundlen];
             double bankfund;
             char save[fundlen];
             double savefund;
            };
double sum( struct funds * );
char* my(struct funds *);
int say(int x,int y);
int main(void)
{//struct funds *e;
 int a=4,b=5;
 struct funds stan={
                    "gar",
                    3024.72,
                    "luck",
                    9237.11
                    };
printf("%f\n",sum(&stan));
printf("%s\n",my(&stan));/*输出有错误*/
//e=&stan;
//printf("%s\n",e->bank);
printf("%d\n",say(a,b));
return 0;
}
double sum( struct funds *p)
{return(p->bankfund+p->savefund);
}
char* my(struct funds *e)
{return (e->bank);
}
int say(int x,int y)
{return (x+y);
}

 
这样就好了!要返回指针。
2010-05-13 10:23
九品绅士
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:199
注 册:2010-3-26
得分:5 
楼主定义的函数char my(struct funds *)有问题,这个函数本来定义是让其返回一个char型变量,而下面函数
char my(struct funds *e)
{return (e->bank);
}
却让其返回一个指针,问题就是这里....解决办法只要改变一下函数的定义char * my(struct funds *),即令其返回一个char型指针...
GOOD LUCK...
2010-05-13 10:32
九品绅士
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:199
注 册:2010-3-26
得分:0 
被二楼抢了~~
2010-05-13 10:33
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
得分:0 
那就顶2楼

南国利剑
2010-05-13 10:36
mxh2008
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-4-26
得分:0 
输出结果可以了,不过请教下
char my(struct funds *e)
{return (e->bank);
}这么是返回一个指针,是bank数组的首地址吗
double sum( struct funds * );为什么不改成double *sum( struct funds * );就可以



[ 本帖最后由 mxh2008 于 2010-5-13 12:58 编辑 ]
2010-05-13 12:52
九品绅士
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:199
注 册:2010-3-26
得分:0 
char my(struct funds *e)只能返回一个char型变量,而你在程序中return (e->bank);返回的是一个指针变量,所以会出错....
至于“为什么不要改成double *sum( struct funds * );”看看你的程序return(p->bankfund+p->savefund);返回的就是一个double型变量呀....

2010-05-13 13:00
mxh2008
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-4-26
得分:0 
return(p->bankfund+p->savefund);返回的就是一个double型变量,这个清楚.
return (e->bank);返回的是一个指针变量,还不是很清楚
2010-05-13 13:10
wu644877373
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:47
专家分:30
注 册:2010-5-11
得分:0 
额。。。我都看不懂。。。

2010-05-13 13:33
mxh2008
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-4-26
得分:0 
各位帮忙详细讲解下
是不是bank是个数组,return (e->bank);返回就是一个指针
2010-05-13 17:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-306451-1-1.html




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

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