You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言初学者如何从指定输入格式中提取对应数字

C语言入门级指定格式数值提取方案

实现思路

直接使用C语言标准库的scanf函数即可完成需求,不需要复杂的字符串拆分逻辑:scanf遇到数值转换符时会自动跳过空格、括号、逗号等非数值字符,也可以主动在格式串里匹配输入的固定符号,完全适配你给出的输入格式。

可运行示例代码

#include <stdio.h>

int main() {
    // 定义9个变量存储对应数值,统一用double兼容整数和小数输入
    double house_cost, down_payment, savings, savings_rate, mortgage_rate;
    double salary, fraction_saving, annual_raise, house_rent;

    // 打印要求的输入提示
    printf("Enter (House-cost, down-payment, savings, savings-annual-rate, mortgage-annual-rate, salary, fraction-saving, annual-raise, house-rent):\n");

    // 直接按照输入格式写scanf的格式串,自动匹配括号和逗号,读取数值
    scanf(" (%lf ,%lf ,%lf ,%lf ,%lf ,%lf ,%lf ,%lf ,%lf )", 
          &house_cost, &down_payment, &savings, &savings_rate, 
          &mortgage_rate, &salary, &fraction_saving, &annual_raise, &house_rent);

    // 测试打印,确认读取结果正确,不需要可以删掉
    printf("读取到的数值如下:\n");
    printf("房屋成本:%.0lf\n首付比例:%.2lf\n现有存款:%.0lf\n存款年利率:%.2lf\n房贷年利率:%.2lf\n月薪:%.0lf\n存款比例:%.2lf\n年薪涨幅:%.2lf\n房屋租金:%.0lf\n",
           house_cost, down_payment, savings, savings_rate, mortgage_rate, salary, fraction_saving, annual_raise, house_rent);

    return 0;
}

代码说明

  • 所有变量统一用double类型,既可以存整数也可以存小数,不用区分类型减少出错
  • scanf的格式串里的括号、逗号会自动匹配输入里的对应符号,不需要你手动处理分隔符
  • 输入的时候不管逗号前后有没有空格,scanf都可以正常识别,适配不同的输入习惯
  • 没有用到数组、指针、字符串处理等入门阶段可能还没学到的内容,全部是基础语法

你直接把示例输入(600000, 0.15, 50000, 0.02, 0.03, 10000, 0.3, 0.03, 2000)输入测试,就可以看到所有数值都能正确提取。

内容的提问来源于stack exchange,提问作者noor napso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:45:04