#include <stdio.h>
#include <stdlib.h>
int judge(a,b,c)
{
if(a>0 && b>0 && c>0)
{
if((a+b)>c && (b+c)>a && (a+c)>b)
{
return 0;
}
else
{
return 1;
}
}
else
{
return 2;
}
}
int main()
{
int goon;
goon = 3;
int a,b,c,d;
while(goon!=0)
{
if(goon==1)
{
printf("your enter can not constitute a triangle, please input the edges of triangle successively again\n");
scanf("%d %d %d",&a,&b,&c);
goon=judge(a,b,c);
}
else if(goon==2)
{
printf("your enter contains negative number,please input the edges of triangle successively again\n");
scanf("%d %d %d",&a,&b,&c);
goon=judge(a,b,c);
}
else
{
printf("please input the edges of triangle successively\n");
scanf("%d %d %d",&a,&b,&c);
goon=judge(a,b,c);
}
}
d=(a+b+c);
printf("the perimeter of the triangle is %d\n",d);
return 0;
#include <stdlib.h>
int judge(a,b,c)
{
if(a>0 && b>0 && c>0)
{
if((a+b)>c && (b+c)>a && (a+c)>b)
{
return 0;
}
else
{
return 1;
}
}
else
{
return 2;
}
}
int main()
{
int goon;
goon = 3;
int a,b,c,d;
while(goon!=0)
{
if(goon==1)
{
printf("your enter can not constitute a triangle, please input the edges of triangle successively again\n");
scanf("%d %d %d",&a,&b,&c);
goon=judge(a,b,c);
}
else if(goon==2)
{
printf("your enter contains negative number,please input the edges of triangle successively again\n");
scanf("%d %d %d",&a,&b,&c);
goon=judge(a,b,c);
}
else
{
printf("please input the edges of triangle successively\n");
scanf("%d %d %d",&a,&b,&c);
goon=judge(a,b,c);
}
}
d=(a+b+c);
printf("the perimeter of the triangle is %d\n",d);
return 0;
}
但是这个程序漏洞太大;如果输入的不是数字而是字母的话,不知道为什么,就会进入死循环状态;如果输入的是某些字符,就会提前结束本次循环。