• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[c/c++] programming之路(7)、数据类型转换、偷钱小程序、进制转换 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 #include<stdio.h>
 2 //某些场合,必须进行数据类型转换,以匹配调用
 3 void main0(){
 4     printf("%f",1);//printf不管你是什么类型,解析失败就是0    0.000000
 5     printf("\n%d",1.0);//0
 6     printf("\n%f",(float)1);//1.000000
 7     printf("\n%d",(int)1.0);//1
 8     getchar();
 9 }
10 
11 void main1(){
12     //实数转整数,会舍弃小数点部分
13     //printf("%d",1/2);//0
14     //printf("\n%d",1/2.0);//0
15     int num=3/2;
16     float f1=1/2.0;//0.5    整数与实数,结果为实数
17     float f2=3/2;//1.000000 整数与整数,结果为整数
18     //1按照%f解析失败,就是0.000000
19     printf("%d,%f",num,num);//1  0.000000
20     //0.5按照%d解析失败,就是0
21     printf("\n%f,%d",f1,f1);//0.500000    0
22     printf("\n%f,%d",f2,f2);//1.000000    0
23     getchar();
24 }

1.隐式转换

1 #include<stdio.h>
2 //赋值号会自动进行赋值类型转换
3 void main(){
4     int x=3.8;
5     printf("%d,%d",sizeof(x),sizeof(3.0));// 4    8
6     printf("\n%d",x);//3
7     getchar();
8 }

2.显式转换(强制转换)

1 #include<stdio.h>
2 //    +-*/赋值->自动转换    printf需要强制转换
3 void main(){
4     printf("%c",(char)65.0);
5     getchar();
6 }

二、偷钱小程序

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 //    1234.45->1234.4
 4 //    1234.46->1234.5
 5 //    五舍六入
 6 //    1234.45->12344.5    +0.4    12344.9    12344    1234.4
 7 //    1234.46->12344.6    +0.4    12345    12345    1234.5
 8 void main(){
 9     float RMB,changeRMB;
10     scanf("%f",&RMB);
11     printf("现在有%0.2f元",RMB);
12     changeRMB=((int)(RMB*10.0f+0.4f))/10.0f;
13     printf("\n现在有%0.2f元\n",changeRMB);
14     changeRMB<RMB?printf("可以偷%f元\n",RMB-changeRMB):printf("原封不动\n");
15 
16     system("pause");
17 }

练习:123.345  小数点第三位先五舍六入,第二位再四舍五入

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 //    123.345->123.340->123.300  小数点第三位先五舍六入,第二位再四舍五入
 4 //    123.346->123.350->123.400
 5 //    五舍六入,再四舍五入
 6 //    123.345->12334.5    +0.4    12334.9    12334    123.34->1233.4    +0.5    1233.9    1233    123.3
 7 //    123.346->12334.6    +0.4    12335      12335    123.35->1233.5    +0.5    1234    1234    123.4
 8 void main(){
 9     float RMB,change_start_RMB,change_end_RMB;
10     scanf("%f",&RMB);
11     printf("现在有%0.3f元",RMB);
12     change_start_RMB=((int)(RMB*100.0f+0.4f))/100.0f;
13     printf("\n第三位五舍六入后有%0.3f元",change_start_RMB);
14     change_end_RMB=((int)(change_start_RMB*10.0f+0.5f))/10.0f;
15     printf("\n第二位四舍五入后有%0.3f元\n",change_end_RMB);
16     change_end_RMB<RMB?printf("可以偷%f元\n",RMB-change_end_RMB):printf("原封不动\n");
17 
18     system("pause");
19 }

三、进制转换itoa

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 void main(){
 5     int num;
 6     char str[32];
 7     scanf("%d",&num);
 8     printf("%d,%u,%o,%x",num,num,num,num);//十进制,无符号十进制,八进制,16进制
 9     //要转换的数据,保存的字符串,要转换的进制
10     itoa(num,str,2);
11     printf("\n%s",str);
12      
13     system("pause");
14 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap