一、摄氏温度和华氏温度的转化
#include <stdio.h>
int main()
{
int celsius,fahr;
fahr = 100;//不方便修改数值,改为scanf("%d",&fahr);printf("Enter fahr:\n);
celsius = 5*(fahr-32)/9;
printf("fahr=%d,celsius=%d\n",fahr,celsius);
return 0;
}
练习题2-4
求华氏温度150°F下的摄氏温度
#include <stdio.h>
int main()
{
int celsius,fahr;
fahr = 150;
celsius = 5*(fahr-32)/9;
printf("fahr=%d,celsius=%d\n",fahr,celsius);
return 0;
}
练习题2-5
5*(fahr-32)/9可以写成5(fahr-32)/9吗?——不可以,会报错;
如果写成(5/9)*(fahr-32)结果会怎样?——得到的结果为celsius = 0,
但是写成 5.0/9.0 *(fahr-32)就可以,因为5/9,5和9都是当成整数类型的
这时/就是整除运算,只要分子小于分母,值就是0,也就是说5/9==0
所以只有用浮点数来相除才是真正的除法,所以写成5.0/9.0
练习题2-6
计算物体自由下落距离
#include<stdio.h>
int main()
{
double height;
height=0.5*10*3*3;
printf("height = %.2f\n",height);
}
二、计算分段函数
#include<stdio.h>
int main()
{
double x,y;
printf("Enter x (x>=0):\n");
scanf("%lf",&x);
if (x<=15){
y=4*x/3;
}
else{
y=2.5*x-10.5;
}
printf("y=f(%f)=%.2f\n",x,y);//%.2f表示指定输出时保留两位小数
return 0;
}
知识点:
关系运算
if-else语句
格式化输入函数scanf
scanf(格式控制字符串,输入参数1,...,输入参数n);
格式控制字符串表示输入的形式,输入参数是变量地址(变量名前加&)。
格式控制:包含以%开头的格式控制字符,不同类型的数据采用不同的格式控制字符。
int型数据使用%d,float型数据使用%f,double型数据使用%lf。(l是long的首字母)
常用数学函数
练习题2-7
输入提示和输入语句的顺序应该如何安排?
一一对应
#include <stdio.h>
int main(){
int a, b, c;
printf("Input a, b, c: \n");
scanf("%d%d%d", &a, &b, &c);//一一对应
printf("a=%d, b=%d, c=%d\n", a, b, c);
return 0;
}
练习题2-8
计算摄氏温度:输入华氏温度,输出对应的摄氏温度。
#include <stdio.h>
int main()
{
int celsius,fahr;
printf("enter fahr:\n");
scanf("%d",&fahr);
celsius = 5*(fahr-32)/9;
printf("celsius=%d\n",celsius);
return 0;
}
练习题2-9
整数四则运算:输入2个正整数,计算并输出它们的和、差、积、商。
#include <stdio.h>
int main()
{
int a,b;
printf("请输入a,b的值");
scanf("%d %d",&a,&b);
printf("%d\n%d\n%d\n%d\n",(a+b),(a-b),(a*b),(a/b));
return 0;
}
练习题2-10
计算分段函数(判断x是否不为0):输入x,计算并输出下列分段函数f(x)的值(保留1位小数)。
#include<stdio.h>
int main()
{
double x,y;
printf("输入x的值:\n");
scanf("%lf",&x);
if (x!=0)
y=1.0/x;
else
y=0;
printf("y=%.1f",y);
}
结果为什么不对。。。它好像是输出不来分数???
练习题2-11
计算分段函数(判断x是否小于0):输入x,计算并输出下列分段函数f(x)的值(保留2位小数)。
#include<stdio.h>
#include<math.h>
int main()
{
double x,y;
printf("输入x的值:\n");
scanf("%lf",&x);
if (x<=0)
y=pow(x+1,2)+2*x+1.0/x;
else
y=sqrt(x);
printf("y=%.2f",y);
}
p30