实现变量自赋值与多价格求和及SEK转换的技术问询
嘿,我来帮你实现这个带汇率转换的购物价格计算器!根据你的需求,我整理了完整的实现方案,包括菜单交互、汇率设置、价格求和与转换的功能,一起来看看吧:
实现带汇率转换的购物价格计算器
需求梳理
首先明确要实现的核心功能:
- 支持变量自赋值:比如汇率变量可以被设置为用户输入的指定值,初始默认1.00
- 价格输入与计算:接收任意多个正数价格,输入负数时结束输入,计算所有价格的总和,并按设置的汇率转换为瑞典克朗(SEK)
- 菜单交互:提供设置汇率、输入价格、退出程序的选项,处理无效输入
代码实现思路
你提供的初始代码逻辑有个小问题:while循环的条件写反了,应该是持续接收输入直到用户输入负数。我调整了逻辑,同时加入了菜单交互功能,让程序更易用。
以下是完整的C语言实现代码:
#include <stdio.h> int main() { double exchange_rate = 1.00; // 初始汇率,变量自赋值为1.00 int choice; double sum = 0.0; double price; printf("购物助手\n"); while (1) { // 显示菜单 printf("1. 设置瑞典克朗(SEK)汇率(当前汇率:%.2f)\n", exchange_rate); printf("2. 输入外币价格\n"); printf("3. 结束程序\n"); printf("请输入选择(1-3):"); scanf("%d", &choice); switch (choice) { case 1: // 设置汇率,变量自赋值为用户输入的值 printf("请输入汇率:"); scanf("%lf", &exchange_rate); break; case 2: sum = 0.0; // 每次输入价格前重置总和 printf("请输入价格(输入负数结束):"); while (scanf("%lf", &price)) { if (price < 0) { break; } sum += price; printf("请输入价格(输入负数结束):"); } // 输出计算结果 printf("外币总价:%.2f\n", sum); printf("瑞典克朗总价:%.2f\n", sum * exchange_rate); break; case 3: printf("程序结束!\n"); return 0; default: printf("无效选项!!\n"); } } return 0; }
代码关键点说明
- 变量自赋值:
exchange_rate初始被赋值为1.00,当用户选择选项1时,通过scanf("%lf", &exchange_rate)将用户输入的值赋值给它,实现变量值与指定输入一致的需求 - 价格输入逻辑:用内层while循环持续接收价格,只要输入的是正数就累加到
sum,输入负数则跳出循环并计算转换后的金额 - 菜单循环:外层
while(1)实现菜单的循环显示,直到用户选择退出(选项3)
运行示例
购物助手 1. 设置瑞典克朗(SEK)汇率(当前汇率:1.00) 2. 输入外币价格 3. 结束程序 请输入选择(1-3):1 请输入汇率:9.71 1. 设置瑞典克朗(SEK)汇率(当前汇率:9.71) 2. 输入外币价格 3. 结束程序 请输入选择(1-3):4 无效选项!! 1. 设置瑞典克朗(SEK)汇率(当前汇率:9.71) 2. 输入外币价格 3. 结束程序 请输入选择(1-3):2 请输入价格(输入负数结束):2.75 请输入价格(输入负数结束):3.50 请输入价格(输入负数结束):-23 外币总价:6.25 瑞典克朗总价:60.69 1. 设置瑞典克朗(SEK)汇率(当前汇率:9.71) 2. 输入外币价格 3. 结束程序 请输入选择(1-3):3 程序结束!
内容的提问来源于stack exchange,提问作者Rassal
相关产品推荐
相关产品推荐

