#include<stdio.h>
#include<stdlib.h>
void fun(char s[]){
int i,j,flag=0;
for(i=0;s[i]!='\0';i++){
if(s[i]=='.')
flag=1;
}
if(flag)
printf("%.2f",atof(s));
else
printf("%d",atoi(s));
}
int main()
{
int i,j,flag=0;
char s[50];
scanf("%s",s);
fun(s);
return 0;
}
也不难啊,整数的话,你是按照转换后的数字根据不同的位置乘以N个10来得到最终的整数,那么对于不一定是整数的情况,在遍历字符串的过程中,需要增加判断是否有小数点字符,没出现小数点前的字符都是整数部分,还是按之前整数的方式处理,出现小数点时,后面的字符另外存储,按照整数字符存储的方式,但转换为整数时,不是乘以N个10了,而是乘以N个十分之一就可以了,两者相加就是最终的浮点数
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632