———–Java培训、Android培训、IOS培训、.Net培训、期待与您交流!————
自己敲得一些代码,来更好地了解取余和除法运算,以及两种类型转换的区别。代码如下,关于里面的变化,相信小伙伴们能够从注释里面看到。
#include<stdio.h>
int main()
{
//测试除法运算和取余运算
int a1 = 10/3;
int a2 = 3/3;
int a3 = 1/3;
int a4 = -1/3;
int a5 = -3/3;
int a6 = 5.01/3; //自动类型转换
printf("%d\n",a1);
printf("%d\n",a2);
printf("%d\n",a3);
printf("%d\n",a4);
printf("%d\n",a5);
printf("%d\n\n",a6);
int c1 = 10%7;
int c2 = 10%-7;
int c3 = -10%7;
int c4 = -10%-7;
//int c5 = 10.01%7; 两边必须是整形,不存在自动转换
printf("%d\n",c1);
printf("%d\n",c2);
printf("%d\n",c3);
printf("%d\n\n",c4);
//printf("%d\n\n",c5);
//整除的余数
printf("整除的余数%d\n",-3%3);
//测试类型转换
//测试自动类型转换
int b1 = 10/3;
int b2 = 1/3; //右边最终值都是int,因为参与计算的两个数都是int
int b3 = 5.01/3; //自动类型转换,因为存在double,所以3提升为double类型,但是在赋值的时候自动转为int
printf("%d\n",b1);
printf("%d\n",b2);
printf("%d\n",b3);
//printf("%d\n",5.01/3); 获得警告,但是结果为3584
printf("%f\n\n",5.01/3);
//测试强制类型转换
double d1 = 10/-7;
double d2 = 1/3;
double d3 = (double)1/3;
double d4 = (double)(1/3);
double d5 = 1.0/3;
double d6 = 1/3.000;
printf("%f\n",d1);
printf("%f\n",d2);
printf("%f\n",d3);
printf("%f\n",d4);
printf("%f\n",d5);
printf("%f\n",d6);
return 0;
}
由于是静态数据,所以运行数据如下:
欢迎各路小伙伴们一起交流学习!