当转换不限于正整数,fun函数如何编写

 

#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