| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:编译后无法运行,求指教
只看楼主 加入收藏
老妖莫莫
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-10-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
编译后无法运行,求指教
刚学C语言,实话说,什么都不懂。
请各位帮我看看一下哪里出错么?

作业原题是在

https://sites.

tasks中的第二题,
由于题目比较长,英文程度也有限,翻译起来可能会有出入,如果确实需要翻译,我再试试看,可以么?

摆脱了

#include <stdio.h>

float jog(float num, int flag);
float hearizon(float num, int flag);
int round_to_int(float num);
int round_to_int2(float num);

main()
{
 float num;
 int flag;

 scanf("%f", &num);
 flag = scanf("%f", &num);

 printf("Here is Your Overage Charge With Jog: $%.2f", jog(num));
 printf("Here is Your Overage Charge With Hearizon: $%.2f", hearizon(num));
}

float jog(float num, int flag)
{
 float gross, jog_charge;
 int jog_flag;

 jog_flag = flag;
 gross = 0;

 while (jog_flag != EOF)
 {
  round_to_int(num);
  gross = gross + round_to_int(num);
 }

 jog_charge = gross * 0.05;

 return jog_charge;
}

float hearizon(float num, int flag)
{
 float gross, hear_charge;
 int hear_flag;

 hear_flag = flag;
 gross = 0;

 while(hear_flag != EOF)
 {
  gross = gross + num;
 }

 round_to_int2(gross);

 hear_charge = round_to_int2(gross) * 0.07;

 return hear_charge;
}

int round_to_int(float num)
{
 int round_num;

 if ((num - (int) num) >= 0.5)
 {
   round_num = ((int) num) + 1;
 }
 else
 {
   round_num = (int) num;
 }
 return round_num;
}

int round_to_int2(float gross)
{
 int round_num;

 if ((gross - (int) gross) >= 0.5)
 {
   round_num = ((int) gross) + 1;
 }
 else
 {
   round_num = (int) gross;
 }
 return round_num;
}
2013-10-04 11:03
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
代码不规范啊
2013-10-04 11:36
老妖莫莫
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-10-4
收藏
得分:0 
回复 2楼 tlliqi
可以指出某一个部分,然后,有可能的话可以说说应该怎么该吗?
谢谢
2013-10-04 11:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用老妖莫莫在2013-10-4 11:49:40的发言:

可以指出某一个部分,然后,有可能的话可以说说应该怎么该吗?
谢谢

不是讓人指出某一部分,而是你自己先寫出能運行的部分,並且讓它運行過正確了,再接著寫後面的部分,那樣錯了也是新加的錯,不是已寫過的,按這種步驟寫程序,不用問人哪裡錯了。學習不講究方法、不求問方法,只學表面的東西,是不行的。

授人以渔,不授人以鱼。
2013-10-04 11:55
老妖莫莫
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-10-4
收藏
得分:0 
回复 4楼 TonyDeng
您说得对,学习不应该是这样的。、
谢谢你的建议。
 

我想要同时算出两组数据的和,应该用什么语句(?表达式)?

这样问会不会好一点?因为我没有任何c语言的基础,自己看书也不太懂应该要从哪里开始……
2013-10-04 12:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序的流程一步一步做,並在代碼中反映出來:
1.先得到兩組數據,毎組數據用數組儲存;
2.單獨的for()循環遍歷一個數組,求和,再用同樣的辦法對第二個數組求和,這是正路;
3.若要走偏門,則觀察兩個數組的元素數目是否相同,若是,則可用一個for()循環求和,這是取巧,前提條件要求嚴格,而且不合邏輯,不推薦,但偶爾可用。

授人以渔,不授人以鱼。
2013-10-04 12:38
老妖莫莫
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-10-4
收藏
得分:0 
回复 4楼 TonyDeng
就好像二楼tlliqi说的,代码不规范,这真的需要细细去研究

真的不想找借口说自己时间安排不过来,但是真的是没有办法了,作业明天交,然后明天早上还有考试,下午上班……

真的不知道该怎么办了……

对不起啦,心急了点……
2013-10-04 12:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
用我6樓說的方法,主函數main()中的代碼要反映上述邏輯思路,然後用函數分別實現毎一步,依次逐層分解,程序就好寫,邏輯才清晰。你5樓要求的程序,並不難,按常規逐個做就是了。其實不管是什麽規模的程序,都不過是這樣做出來的。

[ 本帖最后由 TonyDeng 于 2013-10-4 12:43 编辑 ]

授人以渔,不授人以鱼。
2013-10-04 12:41
老妖莫莫
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-10-4
收藏
得分:0 
回复 8楼 TonyDeng
我在网上找到一本叫《c语言经典入门》的书,不知道有没有帮助。

您可不可以介绍一本在c语言这方面罗列的比较系统全面的书或者是资料?
2013-10-04 13:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你需要的不是什麽C語言系統介紹,而是要如何寫程序的訓練。語言書只教人語法,但不會教人怎麽寫程序。《代碼大全》,我多次介紹過的。

授人以渔,不授人以鱼。
2013-10-04 13:49
快速回复:编译后无法运行,求指教
数据加载中...
 
   



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

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