A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陌生爱人 中级黑马   /  2014-10-15 13:04  /  956 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

仔细试了老师的双文件联合输出做法后 我尝试了用三个文件联合开发

主要思想:用one.c编写主函数 two.c编写计算的算法 three.c编写输入输出函数。这样写与MJ老师的不同是 他是直接给程序赋值两个分数,我的是让用户输入两个分数的。而且把输入输出都写在了three.c 这样主函数就不用管输入输出的算法,也就可以让主函数不包含#include<stdio.h>了。二号和三号的声明文件放在two.h和three.h。主函数只需要包含这两个。

代码如下

遇到的问题:

1.    一开始是把score1和score2定义在main函数里面的因为这个不是在一个主函数里完事的所以后面出现了错误提示无法调用函数,所以就把score1和score2直接拉到了外面成为全局变量,这样就可以访问了。

2.    因为把分数录入放到了第二个文件,所以单纯的实参形参值传递改不了原本score1和score2的值。在全局变量定义的时候是把两个值都初始化了为0.运行之后平均分总分都是0. 然后就想到了用指针使用地址传递&score1那边的形参定义指针类型,然后下面直接接收地址,之后程序就调试成功无警告无错误顺利运行了。

3.    中间还犯了比较低级的错误就是在调试的时候把函数定义的形参改了类型但是声明里面的忘了改,然后就出现了警告直接运行就是程序崩溃

Segmentation fault: 11

正好当时还没网不能查错误,仔细看提示哪个文件第几行才找到了病根。以后这些粗心错误也真是需要坚决制止,为了这种低级错误浪费时间太不值得了。


更多图片 小图 大图
组图打开中,请稍候......

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马