简明现代魔法 -> C/C++ -> C 程序设计:变量与算术表达式

C 程序设计:变量与算术表达式

2010-02-12

问题:使用公式 C = (5/9)(F-32) 打印下列华氏温度与摄氏温度对招表:

0, -17
20, -6
40, 4
60, 15
80, 26
100, 37
120, 48
140, 60
160, 71
180, 82
200, 93
220, 104
240, 115
260, 126
280, 137
300, 148  

我比较熟悉 Java,先用 Java 把程序写一遍吧:

public class temperature {
	
	public static void main(String[] args){
		int fahr, celsius;
		int lower, upper, step;
		
		lower = 0;
		upper = 300;
		step = 20;
		
		fahr = lower;
		while(fahr <= upper){
			celsius = 5 * (fahr-32) / 9;
			System.out.println(fahr + ", " + celsius);
			fahr = fahr + step;
		}
	}
	
}

C 程序代码如下:

#include <stdio.h>

main()
{
	int fahr, celsius;
    int lower, upper, step;
    
    lower = 0;  	/* 温度表下限 */
    upper = 300;	/* 温度表上限 */
    step = 20;		/* 步长 */
    
    fahr = lower;
    while(fahr <= upper)
    {
		celsius = 5 * (fahr-32) / 9;
        printf("%d\t%d\n", fahr, celsius);
		fahr = fahr + step;
	}
    
}

在 C 语言中,所有变量都必须先声名后使用。声名一般都要放在函数起始处,在任何可执行语句之前。声名的主要用途就是说明变量的属性,它由一个类型名和一个变量表组成:

int fahr, celsius;
int lower, upper, step;

在这个程序中,最先执行下列4个赋值语句:

lower = 0;  	/* 温度表下限 */
upper = 300;	/* 温度表上限 */
step = 20;		/* 步长 */
    
fahr = lower;

它们的作用就是为变量设置初值。

温度转换的各行计算方式都是相同的,所以可以用循环语句重复输出各行。

从本程序也可以看得出 printf() 函数的一些功能。printf() 是一个通用输出格式化函数,它的第一个参数是待打印的字符串,其中每个百分号表示其它参数进行替换的位置,并指定打印的格式。比如这里 %d 指定一个整形参数。

printf("%d\t%d\n", fahr, celsius);

用于打印两个整数 fahr 与 celsius 的值,并在两者之间留一个制表符空间 \t。

由于我们使用整型算术运算,因此计算得到的摄氏温度值是不太精确的。要得到精确的结果,需要使用浮点算术运算。

#include <stdio.h>

main()
{
	float fahr, celsius;
    int lower, upper, step;
    
    lower = 0;  	/* 温度表下限 */
    upper = 300;	/* 温度表上限 */
    step = 20;		/* 步长 */
    
    fahr = lower;
    while(fahr <= upper)
    {
		celsius = (5.0/9.0)*(fahr-32.0);
        printf("%3.0f %6.1f\n", fahr, celsius);
		fahr = fahr + step;
	}
    
}

在 printf() 函数中,%3.0f 表示变量 fahr 至少占3个字符宽,且不带小数点和小数部分。%6.1f 表示变量 celsius 至少占6个字符宽,且小数点后面有1位数字。

程序运行结果为:

  0  -17.8
 20   -6.7
 40    4.4
 60   15.6
 80   26.7
100   37.8
120   48.9
140   60.0
160   71.1
180   82.2
200   93.3
220  104.4
240  115.6
260  126.7
280  137.8
300  148.9
随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们