英尺英寸换算米案例:
#include <stdio.h>
int main()
{
int inch=0,foot=0;
printf("请输入身高的英尺和英寸\n");
scanf("%d %d",&inch,&foot);
printf("身高是%f米",(inch+foot/12)*0.3048);
return 0;
}
总结:
- 两个整数的运算结果只能是整数
- 10和10.0在C语言中是完全不同的数
- 整数与浮点数的运算结果是浮点数
解决方案:
#include <stdio.h>
int main()
{
double inch=0.0,foot=0.0; #方案一:将参与运算的英尺英寸设置为浮点型
printf("请输入身高的英尺和英寸\n");
scanf("%lf %lf",&inch,&foot);
printf("身高是%f米",(inch+foot/12.0)*0.3048); #方案二:将12转变为12.0,则foot/12.0后的结果为浮点数
return 0;
}
浮点数:带小数点的数值;浮点数本意是指小数点是浮动的。
整数、小数的输入输出:
- 整数
- int
- printf("%d",...)
- scanf("%d",...)
- 带小数点的数
- double
- printf("%f",...)
- scanf("%lf",...)
2.2.1表达式
运算符(operator):是指进行运算的动作,比如加法运算符"+",减法运算符"-"。
算子(operand):是指参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值。
两个时间做减法:
#include <stdio.h>
int main()
{
int hour1,min1,hour2,min2;
printf("请输入1号时分:\n");
scanf("%d %d",&hour1,&min1);
printf("请输入2号时分:\n");
scanf("%d %d",&hour2,&min2);
int m1=(hour1*60)+min1;
int m2=(hour2*60)+min2;
int m3=m2-m1;
printf("%d时%d分",m3 / 60,m3 % 60);
return 0;
}
2.2.2运算符优先级
求两个数的平均值:
#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
double c = (a+b)/2.0 ;
printf("%lf",c);
return 0;
}
交换两个变量的值:
#include <stdio.h>
int main()
{
int a = 5, b = 6;
int c = a;
a = b;
b = c;
printf("a:%d, b:%d",a,b);
return 0;
}
2.2.4复合赋值和递增递减
复合赋值运算符:5个算术运算符,+-*/%,可以和赋值运算符=结合起来,形成复合赋值运算符:"+="、“-=”、“*=”、“/=”、和“%=”。注意两个运算符中间不要有空格。
total += 5 #等价于
total = total + 5
递增递减运算符:“++”和“--”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是常量。这两个运算符分别叫做递增和递减运算符,它们的作用就是给这个变量+1或者-1。
count ++;
count += 1;
count = count + 1;
- ++和--可以放在变量的前面,叫做前缀形式。也可以放在变量的后面,叫做后缀形式。
- a++的值是a加1以前的值,而++a的值是加1之后的值,无论哪个,a自己的值都加1了。
#include <stdio.h>
int main()
{
int a=1;
printf("a++=%d\n",a++); #1
printf("a=%d\n",a); #2
printf("++a=%d\n",++a); #3
printf("a=%d\n",a); #3
return 0;
}