C语言怎么编程判断三角形的形状?
代码如下:
#include
#include
#define EPSINON 1e-3#define ABS(a) (((a)>0)?(a):(-a)) //?:不支持表达式嵌套#define ZERO(x) ((x)>-EPSINON && (x)(b))?(a):(b))#define MIN(a,b) (((a)0) || !(b>0) || !(c>0)){input_err_flag = 1;}}void sort(void){max = MAX(MAX(a,b),c);min = MIN(MIN(a,b),c);if(MAX(a,b) = (mid+min)){judge_err_flag = 1;}else{max_square = max * max;mid_square = mid * mid;min_square = min * min;tmp = mid_square + min_square;if(equal(mid,min) || equal(max, mid)){if(equal(mid, min)){if(mid == max)puts("等边三角形。");else if(equal(max_square, tmp))puts("等腰直角三角形。");else if(max_square < tmp)puts("等腰锐角三角形。");elseputs("等腰钝角三角形。");}else{if(equal(min, mid))puts("等边三角形。");elseputs("等腰锐角三角形。");}}else if(equal(max_square, tmp))puts("直角三角形。");else if(max_square < tmp)puts("锐角三角形。");elseputs("钝角三角形。");}}int main(void){char cs, ch;do{input();sort();judge();if(input_err_flag){input_err_flag = 0;while((cs=getchar())!='
' && (cs=getchar())!=EOF);printf("输入错误,a b c必须大于零,是否新输入(y/n):");}else if(judge_err_flag){judge_err_flag = 0;while((cs=getchar())!='
' && (cs=getchar())!=EOF);printf("组不成三角形,是否重新输入(y/n):");}else{while((cs=getchar())!='
' && (cs=getchar())!=EOF);printf("是否再输入一组数据(y/n):");}ch = getchar();}while(ch=='y' || ch=='Y' || ch=='
');puts("Goodbye!");return 0;}
if(a=b=c)
判断条件全写错了 ==不是=号
else if(a!=&&b!=c&&a!=c) 仔细看下程序 刚学习编程
如果程序有问题单步调试下
代码如下:
#include <stdio.h>
#include <stdlib.h>
#define EPSINON 1e-3
#define ABS(a) (((a)>0)?(a):(-a)) //?:不支持表达式嵌套
#define ZERO(x) ((x)>-EPSINON && (x)<EPSINON)
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MIN(a,b) (((a)<(b))?(a):(b))
float a, b, c;
float max, mid, min;
char input_err_flag = 0;
char judge_err_flag = 0;
int equal(float a, float b)
{
float tmp;
tmp = a - b;
tmp = ZERO(ABS(tmp));
return tmp;
}
void input(void)
{
a = b = c = 0;
printf("输入三条边的值:");
scanf("%f %f %f",&a, &b, &c);
if(!(a>0) || !(b>0) || !(c>0))
{
input_err_flag = 1;
}
}
void sort(void)
{
max = MAX(MAX(a,b),c);
min = MIN(MIN(a,b),c);
if(MAX(a,b) < c)
mid = MAX(a,b);
else
mid = MAX(MIN(a,b),c);
}
void judge(void)
{
float max_square, mid_square, min_square, tmp;
if(max >= (mid+min))
{
judge_err_flag = 1;
}
else
{
max_square = max * max;
mid_square = mid * mid;
min_square = min * min;
tmp = mid_square + min_square;
if(equal(mid,min) || equal(max, mid))
{
if(equal(mid, min))
{
if(mid == max)
puts("等边三角形。");
else if(equal(max_square, tmp))
puts("等腰直角三角形。");
else if(max_square < tmp)
puts("等腰锐角三角形。");
else
puts("等腰钝角三角形。");
}
else
{
if(equal(min, mid))
puts("等边三角形。");
else
puts("等腰锐角三角形。");
}
}
else if(equal(max_square, tmp))
puts("直角三角形。");
else if(max_square < tmp)
puts("锐角三角形。");
else
puts("钝角三角形。");
}
}
int main(void)
{
char cs, ch;
do
{
input();
sort();
judge();
if(input_err_flag)
{
input_err_flag = 0;
while((cs=getchar())!='
' && (cs=getchar())!=EOF);
printf("输入错误,a b c必须大于零,是否新输入(y/n):");
}
else if(judge_err_flag)
{
judge_err_flag = 0;
while((cs=getchar())!='
' && (cs=getchar())!=EOF);
printf("组不成三角形,是否重新输入(y/n):");
}
else
{
while((cs=getchar())!='
' && (cs=getchar())!=EOF);
printf("是否再输入一组数据(y/n):");
}
ch = getchar();
}
while(ch=='y' || ch=='Y' || ch=='
');
puts("Goodbye!");
return 0;
}
一道C语言编程题,求解答并且说明错误原因!!
\/\/一道C语言编程题,求解答并且说明错误原因!! 50 \/\/编程题:编程实现:从键盘输入三角形的三条边长,判断这三条边是否能构成三角形,如不能打印“不构成三角形”,如能,请判断该三角形是什么类型的三角形?\/\/提示:程序只要能根据输入判断并打印出:不构成三角形、等边三角形、等腰三角形、直角...
有6个点判断任意三点是否能构成三角形 用C语言编程
\/*如果有问题可通过百度hi留言*\/ include<stdio.h> include<malloc.h> struct Point { float x;float y;};int main(){ int i,j,k,n;Point *pointArr;float tmp1,tmp2,tmp3,tmp4;printf("总共有多少个点?\\n");do { scanf("%d",&n);if(n<3)printf("不足3个点,无法组成三角形...
请做c语言编程题,输入三角形三边,判断能否构成三角形,若构成则判断三角...
判断三角形应该是任意两边之和大于第三边;求出三边中的最大边,如果他的平方(A)等于剩余两边的平方和(B)就是直角··;如果A>B,是钝角,A<B就是锐角
c语言,用if语句编程,实现输入三个数值,判断能否构成三角形,如果能就计...
include <stdio.h>#include <math.h>int main(void){ float a,b,c,p,area; printf("请输入三个数:"); scanf("%f%f%f",&a,&b,&c); p=(a+b+c)\/2; if(a+b>c && a+c>b && b+c>a) { area=sqrt(p*(p-a)*(p-b)*(p-c)); printf("以%f...
c语言编程题 :判断一个数是不是完数
C语言程序如下:include "stdio.h"int main(){ int n,i,sum=0;\/\/定义一个存放因子和的变量,以及需要判断的数n,和循环条件用到的i printf("请输入需要判断的数:");scanf("%d",&n);\/\/存放需要判断的数n for(i=1;i<n;i++)\/\/循环条件找出因子并累加 { if(n%i==0)sum+=i;} if...
c语言编程,能否设置一个判断,有若干条件(比如5个条件),当满足其中任意3...
你这问题属于算法问题。判断离不开if语句,如果你依据你的问题的的实际情况,设计出一个高效的判断方式,则就完成了算法设计。最简单的:设计一个变量 int flag = 0;if ( "条件1") if (++flag >=3) {} if ("条件2") if (++flag >=3) {} ...如此这般。
c语言编程,输入一些整数,判断其中正数与负数的个数,并分别求出正数与...
代码如下:include "stdio.h"main( ){ int i,iNum,iCount1=0,iCount2=0,iCount3=0;for(i=1;i<11;i++){ printf("请输入10个数:");scanf("%d",&iNum);if (iNum>0)iCount1++; \/*iCount1表示大于0数*\/ else if(iNum<0)iCount2++; \/*iCount2表示小于0的数*\/ else i...
c语言的三个循环语句该怎么区别呢
C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。一、for循环 for循环语句的基本语法 for(表达式1;表达式2;表达式3){ 循环体;} 语义:1.选执行表达式1,跳转到2;2.判断表达式2是否成立,如果成立,则跳转到3,否则跳转到...
...为3和5倍数是则输出yes否则输出no"的C语言编程
int main(){ int a;scanf(”%d“, &a);if (!(a % 3) && !(a%5)) { printf("yes");} else { printf("no");} return;} 问题中是3和5的倍数,如果该陈 是3或5的倍数,将&& 换成 ||符号。希望我的解答能够被采纳。
C语言编程从键盘输入一个字符,判断该字符是否为控制字符、空格、数字字...
include<stdio.h> voidmain(){ charch;inta;ch=getchar();if(ch>='a'&&ch<='z')ch='1';if(ch>='A'&&ch<='Z')ch='2';if(ch=='')ch='3';switch(ch){ case'1':printf("xiao\\n");break;case'2':printf("da\\n");break;case'3':printf("空格\\n");break;default:...
本依阿美: 代码如下: #include <stdio.h> #include <stdlib.h> #define EPSINON 1e-3 #define ABS(a) (((a)>0)?(a):(-a)) //?:不支持表达式嵌套 #define ZERO(x) ((x)>-EPSINON && (x)<EPSINON) #define MAX(a,b) (((a)>(b))?(a):(b)) #define MIN(a,b) (((a)<(b))...
开封县15918149827: 判断三角形形状的C语言程序怎么写? - ?
本依阿美:[答案] 你是完全不会写 还是不会思路 我先写思路吧 三条边长度 从大到小排列 abc 比较 a平方 和 b平方+c平方 相等 直角三角形 前面的大 钝角三角形 后面的大 锐角三角形
开封县15918149827: 用C语言判断三角形 - ?
本依阿美: #include <iostream.h>int main(void) {int a,b,c;cout<<"请输入3个参数:"<<endl;cin>>a>>b>>c;if (!(a+b<=c || a+c<=b || b+c<=a)){if (a==b && a==c) cout<<"等边三角形"<<endl;else if (a==b || a==c || b==c) cout<<"等腰三角形"<<endl;else cout<<"不等边三角形"<<endl;}else cout<<"无法组成三角形"<<endl;return(0); }
开封县15918149827: 用c语言编程判断三角形的形状 - ?
本依阿美: #includebool equl(float a,float b) { if(a==b) return true; else return false; } bool alleq(float a,float b,float c) { if(a==b&&b==c&&c==a) return true; else return false; } void juge(float a,float b,float c) { if(a+b<=c) { printf("non-triangle.\n"); } else if(b+c<=a) ...
开封县15918149827: C语言 三角形判定 - ?
本依阿美:[答案] #include void main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); if(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a) { if(a==b && b==c) { printf("deng bian"); } else if(a==b || a==c || b==c) { printf("等腰三角形"); } else if(a*a+b*b==c*c || a*a+c*...
开封县15918149827: C语言判断三角形形状的代码怎么写? - ?
本依阿美: 你要如何判断?就是直角三角形,锐角三角形和钝角三角形? 如果是这样,很好办,给你提示: 1. 三角形大边对大角,先找到最大边,假设为c 2. 找到最大边,然后计算余弦值 3. 余弦定理:cosC=(a^2+b^2-c^2)/2ab,实际只需要比较分子的正负,如果小于0,表示为钝角三角形,为0表示为直角三角形,大于0表示为锐角三角形. 如果需要代码,我再给你写,觉得对你有帮助请采纳.上网不易,答题不易.
开封县15918149827: C语言编程,判断三角形形状 - ?
本依阿美: if(a=b=c) 判断条件全写错了 ==不是=号 else if(a!=&&b!=c&&a!=c) 仔细看下程序 刚学习编程 如果程序有问题单步调试下
开封县15918149827: 关于c语言中判断三角形形状的编程 - ?
本依阿美: 很好啊,有错吗? 如果有错,也就是int main()没有返回值,你可以加个return 0; 也可以改成void main(); 另外屏幕输入边长的时候,注意要用“3,3,3”;“2,3,4”这样的格式.这个应该不用提示吧.
开封县15918149827: 如何编写用C语言判断三角形的形状 要求只输入三边长 - ?
本依阿美: (1)一样长就是等边,(2)有两个一样就是等腰,(3)最后在判断两个较小边的平方是否等于较长边的平方来看它是否是直角三角形,其中涉及到的比大小是很简单的,相信楼主应该会吧,就是两两相较,找出最大的 依着这个思路写就行了..
开封县15918149827: C语言,怎么编程判断三角形的形状? - ?
本依阿美: 什么形状? 等边、等腰?这个判断3边就可以了 直角,锐角,钝角? 大角对大边,把短的两边先平方再相加,和最大边的平方比较.相等=》直角,小于=》钝角,大于=》锐角