| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1907 人关注过本帖
标题:关于return语句
只看楼主 加入收藏
xiangjiantui
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2005-11-13
收藏
 问题点数:0 回复次数:15 
关于return语句
我在VC++和C-FREE都试验了可是让我不能理解的是一个小小的retun把我难住,大家来看下2个代码一个是有return一个是没有:
#include<iostream>
#include<cmath>
using namespace std;
float sanjiaoxing(float a,float b,float c);
void main()
{cout<<"请输入一个三角形的各边长a,b,c"<<endl;
int x,y,z;
cin>>x>>y>>z;
sanjiaoxing(x,y,z);
}
float sanjiaoxing(float a,float b,float c)
{ float area;
float s;
if(a+b<=c||a+c<=b||b+c<=a)
{cout<<"您输入的三个数不能组成三角形"<<endl;
//本应该有的位置
}
else
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"三角形"<<a<<" "<<b<<" "<<c<<" "<<"的面积是:"<<area<<endl;
/本应该有的位置
}
}
这个程序执行没有毛病
再来看看书上的原代码:
#include<iostream>
#include<cmath>
using namespace std;
float sanjiaoxing(float a,float b,float c);
void main()
{cout<<"请输入一个三角形的各边长a,b,c"<<endl;
int x,y,z;
cin>>x>>y>>z;
sanjiaoxing(x,y,z);
}
float sanjiaoxing(float a,float b,float c)
{ float area;
float s;
if(a+b<=c||a+c<=b||b+c<=a)
{cout<<"您输入的三个数不能组成三角形"<<endl;
return;
}
else
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"三角形"<<a<<" "<<b<<" "<<c<<" "<<"的面积是:"<<area<<endl;
return;
}
}
这个程序运行后有2个毛病
可是书上的是为了说明retun没有返回值的语句啊!!!!!!
谁能帮我解这个问题!谢谢
搜索更多相关主题的帖子: 语句 return 
2005-11-16 22:48
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 
写个return 0;。。。。。

2005-11-17 10:49
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 
对不起,刚才没看仔细,你改成int main试试

2005-11-17 10:56
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
丢掉你的书

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-11-17 11:11
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
#include<iostream>
#include<cmath>
using namespace std ;
void sanjiaoxing(float a,float b,float c);
int main(void)
{
cout<<"请输入一个三角形的各边长a,b,c"<<endl ;
int x,y,z ;
cin>>x>>y>>z ;
sanjiaoxing(x,y,z);

return 0;
}
void sanjiaoxing(float a,float b,float c)
{
float area ;
float s ;
if(a+b<=c||a+c<=b||b+c<=a)
{
cout<<"您输入的三个数不能组成三角形"<<endl ;
return ;
}
else
{
s=(a+b+c)/2 ;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"三角形"<<a<<" "<<b<<" "<<c<<" "<<"的面积是:"<<area<<endl ;
return ;
}
}

注意红字

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-11-17 11:15
xiangjiantui
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2005-11-13
收藏
得分:0 
你写的红字能不能说明?
谢谢版主

2005-11-17 18:07
nFox18
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-11-17
收藏
得分:0 
   两个程序都错了啊.声明为又返回值的函数必须有返回语句,而且必须返回一个值.你那个函数根本不需返回值,版主改的就很好,不过那两个返回语句可以不要....

天行健,君子以自强不息;地势坤,君子以厚德载物
2005-11-17 18:30
Staples
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-13
收藏
得分:0 
在if else 语句中不要return也是行的吧!
2005-11-17 22:56
苦味酸
Rank: 2
等 级:新手上路
威 望:3
帖 子:142
专家分:0
注 册:2005-9-9
收藏
得分:0 
你的面积计算函数根本就不需要有值返回嘛,干吗要加return,多此一举,再说,为什么要在条件判断语句中去做返回呢,本来你的想法没错,但给人的感觉就是很不规范,要尽量追求程序简单易读才是。  return语句不是你这么用的,既然你定义的是返回浮点型,就不能在程序中返回空值!

『站在风口浪尖紧握住鼠标旋转!』 『不在于选择什么,而在于坚持多久!』
2005-11-18 22:43
echeck
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-11-12
收藏
得分:0 

#include<iostream>
#include<cmath>
using namespace std ;
void sanjiaoxing(float a,float b,float c);
void main(void)
{
cout<<"请输入一个三角形的各边长a,b,c"<<endl ;
int x,y,z ;
cin>>x>>y>>z ;
sanjiaoxing(x,y,z);

}
void sanjiaoxing(float a,float b,float c)
{
float area ;
float s ;
if(a+b<=c||a+c<=b||b+c<=a)
{
cout<<"您输入的三个数不能组成三角形"<<endl ;
}
else
{
s=(a+b+c)/2 ;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"三角形"<<a<<" "<<b<<" "<<c<<" "<<"的面积是:"<<area<<endl ;
}
}
这样你试一下


2005-11-19 23:52
快速回复:关于return语句
数据加载中...
 
   



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

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