| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2386 人关注过本帖
标题:[求助]函数判断三角形的困惑
只看楼主 加入收藏
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
 问题点数:0 回复次数:12 
[求助]函数判断三角形的困惑

书上有道题目,要求输入三个数据,然后判断是类型否为等腰三角形或等边三角形,或不等边三角形。然后输出响应的信息。要求用到 结构 函数。

我敲了个代码,但是在函数判断内出现问题。无论什么数字,都只显示一种情况。为什么??
能帮我看看,问题出在哪里吗?能否进行精简改进呢??

代码如下:

#include<stdio.h>
float type(float);
struct border
{
float left;
float right;
float hemline;
};
void main()
{
struct border triangle;
triangle.left;
triangle.right;
triangle.hemline;
printf("请输入三角形的三个边的长度:\t");
scanf("%f%f%f",&triangle.left,&triangle.right,&triangle.hemline);
type(triangle.left,triangle.right,triangle.hemline);

}

float type(float x,float y,float z)
{

if(x+y>z||x+z>y||y+z>x)
{
if(x==y&&x==z&&y==z)
printf("您输入的是一个等腰三角形\n");
else if(x==y&&x==z&&y==z)
printf("您输入的是一个等边三角形\n");
else
printf("您输入的是一个不等边三角形\n");
}
else
printf("对不起,您输入的不符合三角形的定义。\n");
}

[此贴子已经被作者于2006-9-14 21:14:35编辑过]

搜索更多相关主题的帖子: 函数 三角形 float 困惑 判断 
2006-09-14 21:01
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
以下是引用cnrainboy在2006-9-14 21:01:27的发言:

书上有道题目,要求输入三个数据,然后判断是类型否为等腰三角形或等边三角形,或不等边三角形。然后输出响应的信息。要求用到 结构 函数。

我敲了个代码,但是在函数判断内出现问题。无论什么数字,都只显示一种情况。为什么??
能帮我看看,问题出在哪里吗?能否进行精简改进呢??

代码如下:

#include<stdio.h>
float type(float);
struct border
{
float left;
float right;
float hemline;
};
void main()
{
struct border triangle;
triangle.left;
triangle.right;
triangle.hemline;
printf("请输入三角形的三个边的长度:\t");
scanf("%f%f%f",&triangle.left,&triangle.right,&triangle.hemline);
type(triangle.left,triangle.right,triangle.hemline);

}

float type(float x,float y,float z)
{

if(x+y>z||x+z>y||y+z>x)
{
if(x==y&&x==z&&y==z)
printf("您输入的是一个等腰三角形\n");
else if(x==y==z)//汗,有这样判断的吗?,还是写规范一点吧
printf("您输入的是一个等边三角形\n");
else
printf("您输入的是一个不等边三角形\n");
}
else
printf("对不起,您输入的不符合三角形的定义。\n");
}


汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-14 21:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include<stdio.h>
float type(float,float,float);
struct border
{
float left;
float right;
float hemline;
};
void main()
{
struct border triangle;

printf("请输入三角形的三个边的长度:\t");
scanf("%f%f%f",&triangle.left,&triangle.right,&triangle.hemline);
type(triangle.left,triangle.right,triangle.hemline);
getch();

}

float type(float x,float y,float z)
{

if(x+y>z&&x-y<z)
{

if(x==y&&y==z)
printf("*您输入的是一个等边三角形\n");
else if(x==y||x==z||y==z)
printf("**您输入的是一个等腰三角形\n");
else
printf("***您输入的是一个不等边三角形\n");
}
else
printf("****对不起,您输入的不符合三角形的定义。\n");
}


倚天照海花无数,流水高山心自知。
2006-09-14 21:15
mayudong1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:348
专家分:21
注 册:2006-4-18
收藏
得分:0 
type定义不对且不应该返回float型
判断式也不真确

2006-09-14 21:15
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
得分:0 
不好意思,晕头了,可是最后结果总是输出不等边!!为什么呢?
2006-09-14 21:15
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
得分:0 
以下是引用mayudong1在2006-9-14 21:15:32的发言:
type定义不对且不应该返回float型
判断式也不真确

可是type里数值是float型的啊。三边应该可以是小数字的呀!

2006-09-14 21:19
mayudong1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:348
专家分:21
注 册:2006-4-18
收藏
得分:0 
应该是3个float

2006-09-14 21:20
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
得分:0 
以下是引用nuciewth在2006-9-14 21:15:01的发言:

#include<stdio.h>
float type(float,float,float);
struct border
{
float left;
float right;
float hemline;
};
void main()
{
struct border triangle;

printf("请输入三角形的三个边的长度:\t");
scanf("%f%f%f",&triangle.left,&triangle.right,&triangle.hemline);
type(triangle.left,triangle.right,triangle.hemline);
getch(); /*这个的作用是什么,上边已经用scanf输入了呀??*/

}

float type(float x,float y,float z)
{

if(x+y>z&&x-y<z) /*而且我记得两边只和大于第三边就能够判断是三角形了啊,还用减吗?*/
{

if(x==y&&y==z)
printf("*您输入的是一个等边三角形\n");
else if(x==y||x==z||y==z)
printf("**您输入的是一个等腰三角形\n");
else
printf("***您输入的是一个不等边三角形\n");
}
else
printf("****对不起,您输入的不符合三角形的定义。\n");
}


这么判断仍然是错误的啊,无论怎么输入,都显示不符合三角形定义!!

[此贴子已经被作者于2006-9-14 21:28:44编辑过]

2006-09-14 21:23
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
1.掌握三角形的判定,两边之和大于第三边,两边之差小于第三边就可以了.
2.逻辑运算的用法,x==y==z是这样判断的,首先判断x==y的真假,然后判断z是否与前面的真值相等,这个并没有判断出三条边是否相等,而是这样的x==y&&x==z.
3.结构体的定义在这里行同虚设,既然定义了结构体,就应该直接用结构体变量做为函数参数,这样可以保持三角形的完整性.
4.triangle.left;定义一个语句有它的含义,所以这样的语句也没有操作,这是毫无意义的.
5.注意判断等边三角形时候的先后,理论上说,等边三角形是等腰三角形的特殊,所以得先判断是否是等边三角形.
6.函数声明与函数定义参数不符.

倚天照海花无数,流水高山心自知。
2006-09-14 21:24
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
请输入三角形的三个边的长度: 3 3 4
**您输入的是一个等腰三角形
Press any key to continue...

请输入三角形的三个边的长度: 3 4 5
***您输入的是一个不等边三角形
Press any key to continue...

请输入三角形的三个边的长度: 3 3 3
*您输入的是一个等边三角形
Press any key to continue...

请输入三角形的三个边的长度: 1 2 3
****对不起,您输入的不符合三角形的定义。
Press any key to continue...

倚天照海花无数,流水高山心自知。
2006-09-14 21:29
快速回复:[求助]函数判断三角形的困惑
数据加载中...
 
   



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

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