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
相关产品推荐
相关产品推荐

