您的位置:首页 > 其它

一个简单的判断三角形形状的C程序

2014-04-22 10:05 363 查看
        

        昨天写了一个判断三角形形状的程序,然后EZ发现了里面的无数个问题。

        原本我的程序是

#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
{
if(a==b)
if(b==c)
printf("等边三角形\n");
else
printf("等腰三角形\n");
else
if(b==c)
printf("等腰三角形\n");
else
if(c==a)
printf("等腰三角形\n");
else
printf("不等边三角形\n");
}
else
printf("不构成三角形");
return 0;

}


         写成这样,自己一开始觉得没有什么问题,但是程序编译通过了,就是运行不到自己想要的结果。给EZ看了之后才知道这个原来是各种问题。先不说我这样写是不是简洁明了,单看格式就是各种问题。EZ也说了,我写程序的风格以后再不改会哭的。所以为了以后不被自己坑死,我还是要努力的养成好习惯,对吧~

        下面来罗列一下上面这个程序的问题:

         1、变量没有初始化;

         2、各种优先级不确定的情况下最好打括号;

         3、输入是没有检验scanf是否正确读取了数据;

         4、if和else后面的语句最好都打上中括号;

好了差不多就是这些。。

        一开始运行的结果不是自己想要的,但是只要改了上面说的几点,就能的到自己想的结果,这样程序就和自己的想法达成一致了,目的终于达到了~!

        EZ帮忙修改后的程序

#include<stdio.h>
int main()
{
int a=0,b=0,c=0;

while(!scanf("%d",&a))
{
printf("scanf error\n");
return 0;
}

while(!scanf("%d",&b))
{
printf("scanf error\n");
return 0;
}

while(!scanf("%d",&c))
{
printf("scanf error\n");
return 0;
}

if(a+b>c&&b+c>a&&a+c>b)
{
if(a==b)
{
if(b==c)
{
printf("等边三角形\n");
}
else
{
printf("等腰三角形\n");
}
}
else
{
if(b==c)
{
printf("等腰三角形\n");
}
else
{
if(c==a)
{
printf("等腰三角形\n");
}
else
{
printf("不等边三角形\n");
}
}
}
}
else
{
printf("不构成三角形");
}

return 0;

}


        细节决定成败,我知道我还需要加倍努力啊~~

        还有啊~EZ你的经验我有认真听并且吸收的哟!噗哈哈~3QQQQQQ!可能是练得比较少。。。然后有些会突然忘记,,,没有养成那个习惯。改ing......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c