| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1340 人关注过本帖
标题:求助帖 关于函数调用函数的问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
/*输入教师信息函数 */

 void input(TEACHER *data, int *len)

 {
     int num;
     //void save(TEACHER *data, int len);       假设你删掉这个
     
     putchar('\n');
     printf("%s\n", "请输入新的记录,如果需要退出当前菜单请输入-1.");
     printf("%s\n", "格式:\n职工号\n");
     printf("%s\n", "姓名 职称 性别 年龄 教学效果综合评分");
     putchar('\n');
     printf("如:\n");
     printf("1\n");
     printf("李白 副教授 男 25 92\n");
     scanf("%d", &num);
     
     while(num != -1) 
     {
         data[*len].num = num;
         scanf("%s %s %s %d %lf", data[*len].name, &data[*len].level, &data[*len].sex, &data[*len].age, &data[*len].score);
         (*len)++;
         scanf("%d", &num);
     } 
     
     //void save(TEACHER *data,int len);             假定你把这行改成如下
     save(data,len);                                 // 你觉得这个时候,len的值是多少?是什么数据类型?save()函数中要求是什么数据类型?
 }

授人以渔,不授人以鱼。
2015-09-06 19:16
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 21楼 TonyDeng
额。。。我还是看java去吧。。。有点复杂的。。。

剑栈风樯各苦辛,别时冰雪到时春
2015-09-06 19:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
save()的函数声明如下
void save(TEACHER *data, int len)
这里的len是一个int型数据,然而在input()函数中,len是一个指向int数据的指针。把一个指针的值当整数传给save(),不崩溃才怪了。

授人以渔,不授人以鱼。
2015-09-06 19:27
hwd96
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2015-9-6
收藏
得分:0 
。。。
2015-09-06 19:30
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 23楼 TonyDeng
版主大人,为啥俺投不了你的票呢?点了不响应呢。。。

剑栈风樯各苦辛,别时冰雪到时春
2015-09-06 19:31
hwd96
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2015-9-6
收藏
得分:0 
我之前也想过这个问题  但是input里必须要*len   那该怎么办呢
2015-09-06 19:32
hwd96
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2015-9-6
收藏
得分:0 
我试试
2015-09-06 19:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1.在所有函数中,len都不需要用指针(除了迫不得已的地方,都尽量避免使用指针!)
2.len可以通过input()的返回值返回
3.在逻辑上,也不应该在input()中调用save()

授人以渔,不授人以鱼。
2015-09-06 19:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你这份代码,变量名的命名也有点古怪,data[]数组的尺寸怎么用NAME?NAME是名字的意思,怎么看都不是数量。而且后面的结构定义中也没使用前面设定的常数,128、16这些是魔数。你抄的代码,人家原先是用C++写,你非要当C用吧?

授人以渔,不授人以鱼。
2015-09-06 19:43
hwd96
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2015-9-6
收藏
得分:0 
谢谢  改好了     我在input里设了一个int temp    把len指向的值存在temp里    直接save(data, temp)就行了
2015-09-06 19:43
快速回复:求助帖 关于函数调用函数的问题
数据加载中...
 
   



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

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