一个简单的判断三角形形状的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......
相关文章推荐
- Linux C函数参考手册(PDF版)
- C#实现打造气泡屏幕保护效果
- C/C++数据对齐详细解析
- C 语言基础教程(我的C之旅开始了)[三]
- C 语言基础教程(我的C之旅开始了)[七]
- C/C++ 宏详细解析
- 用C#生成不重复的随机数的代码
- 在c和c++中实现函数回调
- 浅析C/C++中被人误解的SIZEOF
- C 语言基础教程(我的C之旅开始了)[六]
- C/C++函数调用的几种方式总结
- c/c++中变量的声明和定义深入解析
- 浅析c与c++中struct的区别
- 深入详解C编写Windows服务程序的五个步骤
- 深入理解C/C++混合编程
- C 语言基础教程(一)颜色加亮
- 关于《C和指针》的学习笔记
- c_str()的用法详细解析
- C/C++中可变参数的用法详细解析