数据类型和运算
进行整数/整数之间的操作时,商的小数部分会被舍弃,而在double类型中小数部分则会被保留,这在前面已经讲到,有一点需要注意:
由于%本身的特性决定了它们之间只能是整数之间的运算,而不适用于浮点数。
当不是整数/整数的运算时,比如是int/double这样的情况int类型的操作数会进行隐式类型转换,自动向上转型为double,运算之间就变为了double类型之间的运算。
注意:
所谓较大的数据类型,并不是指double类型就比int类型更大,而是说它还可以保存小数点以后的部分。
#include<stdio.h>
int main()
{
int n1, n2, n3, n4;
double d1, d2, d3, d4;
n1 = 5 / 2 ;
n2 = 5.0 / 2.0;
n3 = 5.0 / 2;
n4 = 5 / 2.0;
d1 = 5 / 2 ;
d2 = 5.0 / 2.0;
d3 = 5.0 / 2;
d4 = 5 / 2.0;
printf("n1 = %dn", n1);
printf("n2 = %dn", n2);
printf("n3 = %dn", n3);
printf("n4 = %dnn", n4); // 两个n是为了输出空行
printf("d1 = %fn", d1);
printf("d2 = %fn", d2);
printf("d3 = %fn", d3);
printf("d4 = %fn", d4);
return 0;
}
int类型变量的赋值
为int类型变量的赋值会自动舍弃小数部分,比如2.5会被赋值为2。
double类型变量的赋值
为double类型变量赋值会保存小数部分,即使赋值为整数也会转为为带小数的数值,比如2被赋值为2.0.
类型转换
#include<stdio.h>
int main()
{
int a, b;
puts("请输入两个整数:");
printf("整数1:"); scanf("%d", &a);
printf("整数2:"); scanf("%d", &b);
printf("这个整数的平均值是%f。n", (a + b) / 2.0);
return 0;
}
让我们来看下求均值表达式(a + b) / 2.0,在括号内时(int+int)类型所得结果自然也是int类型整数,进行下一步除法运算时为int/double,发生了隐式类型转换。
例如,(int)3.14转换为对应数据类型的3。(double)2转换为对应数据类型的2.0。
#include<stdio.h>
int main()
{
int a, b;
puts("请输入两个整数:");
printf("整数1:"); scanf("%d", &a);
printf("整数2:"); scanf("%d", &b);
printf("这个整数的平均值是%f。n",(double) (a + b) / 2.0);
return 0;
}
这样的类型转换就称为显示转换(cast),“()”称为类型转换运算符。
类型转换运算符 (数据类型)a 把a转换为对应的数据类型 |
转换说明
读取三个整数显示它们的话以及平均数,与前面程序一样在求取平均时发生了类型转换。
#include<stdio.h>
int main()
{
int a, b, c;
int sum;
double ave;
puts("请输入三个整数:");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("整数c:"); scanf("%d", &c);
sum = a + b + c;
ave = (double) sum / 3;
printf("它们的和是%5dn。", sum );
printf("它们的平均值是%5.1f。n", ave);
return 0;
}
A0标志:设置了0标志后,数值的前面有空余位则用0补齐,负责就是用空白位补齐。
B最小字符宽度:至少显示的字符位数。不设定位数或当显示数值的实际位数超过设置的位数时,会根据数值显示出必要的位数。
下一章节我们会对运算与数据类型进行总结,只有及时的温故才能更好的知新!
原文地址:https://blog.csdn.net/W06164932/article/details/134664189
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_44326.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!