用位运算,基本数据类型写,数组还没学(语言-c语言)

/* 用户输入一个浮点数,不能用scanf函数,必须用getchar函数把用户输入的浮点数字符转换成浮点数数据,输出用户输入的浮点数+2.4以后的结果
a. 测试数据,用户输入10.5,程序输出 12.9
b. 测试数据,用户输入23.78,程序输出 24.18
c. 测试数据,用户输入20,程序输出 22.4
d. 测试数据,用户输入3,程序输出 5.4*/

供参考:

#include <stdio.h>
int main()
{
    char ch;
    int  n = 0,k = 1,flg = 0;
    double num = 0;
    while((ch = getchar()) != '\n')
    {
        if (ch >='0' && ch <='9')
        {
            n = n * 10 + ch - '0';
            if (flg) k *= 10;
        }
        else if (ch == '.'){
            num = n;
            n = 0;
            flg = 1;
        }
    }
    num += (double) n / k + 2.4;
    printf("%g", num);
    return 0;
}