无影寒冬 发表于 2017-12-1 13:50

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程序设计》敲的一份代码。
通过输入不同数值实现华氏温度摄氏温度之间互相转换。
请各位大佬指导一下。

NoDocCat 发表于 2017-12-6 22:26

简单提几个意见:
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

a38758720 发表于 2017-12-1 14:12

...难得这个论坛还有这种清新帖

opensvn 发表于 2017-12-1 14:41

为什么不在linux下面学编程

183595412 发表于 2017-12-1 14:43

你就像一股清流。呵呵

52pojie123 发表于 2017-12-1 15:06

这个是课后题吧。。

caige2008 发表于 2017-12-1 15:14

此处省略很多字!!!!!!

冰刀一名 发表于 2017-12-1 15:20

教程分享一下呗

无影寒冬 发表于 2017-12-1 16:18

opensvn 发表于 2017-12-1 14:41
为什么不在linux下面学编程

最开始用的VC++6.0,后来用的C-free5,最后还是感觉DEV-C++比较友好。
Linux感觉很麻烦,就没有学。

无影寒冬 发表于 2017-12-1 16:19

52pojie123 发表于 2017-12-1 15:06
这个是课后题吧。。

好像是书上的例题吧,我有扩充了一下,时间有点久忘了是不是课后题了。

无影寒冬 发表于 2017-12-1 16:20

52pojie123 发表于 2017-12-1 15:06
这个是课后题吧。。

好像是书上的例题吧,我有扩充了一下,时间有点久,忘了是不是课后题了。
页: [1] 2
查看完整版本: C语言实现华氏摄氏温度转换小程序代码