C语言实现华氏摄氏温度转换小程序代码
#include<stdio.h>#include<windows.h>
int main(void)
{
int i;
for(i=0;i<100;i++)
{
system("cls");
system("color a");
float a,b; //定义a和b为单精度浮点型变量,华氏温度为a,摄氏温度为b
char xz;//定义选择
printf("华氏温度请输入F,摄氏温度请输入C\n");
xz=getchar();//输入选择
if(xz==70)//如果为F
{
printf("请输入华氏温度的值\n");
scanf("%f",&a); //输入F的值
b=(5.0/9)*(a-32); //利用公式计算C的值
printf("华氏温度为:%f\n摄氏温度为:%f\n",a,b);
getchar();
}
else if(xz==67)//如果为C
{
printf("请输入摄氏温度的值\n");
scanf("%f",&b); //输入C的值
a=b/(5.0/9)+32; //利用公式计算F的值
printf("摄氏温度为:%f\n华氏温度为:%f\n",b,a);
getchar();
}
else//输入其他值
{
system("color c");
printf("输入错误,程序运行停止\n\a");//停止运行,警告
getchar();
}
getchar();//按任意键从头开始
}
system("pause");
return 0;
}
刚学C语言的时候参照谭浩强《C程序设计》敲的一份代码。
通过输入不同数值实现华氏温度摄氏温度之间互相转换。
请各位大佬指导一下。 简单提几个意见:
1. 把windows.h换成stdlib.h, 以std开头的是标准库, 在各平台下都有实现, 而windows.h只在windows平台下的编译器里才有
2. 把int i,放到for里: for(int i=0; i < 100; i++); 变量定于的作用域要尽量的小, 让i只存在于for的作用域比存在于main函数的作用域要好得多
3. 你这个程序既然是多次输入, 就不要限定循环次数, 直接while(1), 然后检测输入, 如:检测到输入Q时, break掉循环
4. 变量名尽量起有意义的名字(英文), 趁这个机会还可以多背一些英语单词, 不要沾染上谭C或者易语言的那些坏习惯
5. 你那个多次if, 换成switch会更好一些, 判断字符直接和字符的字面量比, 不要去比ASCII码, 程序的可读性很重要
6. 括号要么换行和行首对齐, 要么不换行, 跟在上一行之后, 你这个写法, 嵌套的层级写多了会很难读的
7. 函数参数列表为空, 不需要写void ...难得这个论坛还有这种清新帖 为什么不在linux下面学编程 你就像一股清流。呵呵 这个是课后题吧。。 此处省略很多字!!!!!! 教程分享一下呗 opensvn 发表于 2017-12-1 14:41
为什么不在linux下面学编程
最开始用的VC++6.0,后来用的C-free5,最后还是感觉DEV-C++比较友好。
Linux感觉很麻烦,就没有学。 52pojie123 发表于 2017-12-1 15:06
这个是课后题吧。。
好像是书上的例题吧,我有扩充了一下,时间有点久忘了是不是课后题了。 52pojie123 发表于 2017-12-1 15:06
这个是课后题吧。。
好像是书上的例题吧,我有扩充了一下,时间有点久,忘了是不是课后题了。
页:
[1]
2