2017年蓝桥杯——购物清单

题目:购物单小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。你的任务是计算出,小明最少需要取多少现金。以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。

解题思路:
将题目信息复制到.txt文件中,然后用程序读取文件并对其中的数据进行计算输出

代码如下:

#include<stdio.h>
int main()
{
    double x,y;
    double count=0;
    freopen("r1.txt","r",stdin);//stdin是标准输入 一般指键盘输入到缓冲区的东西
    while(scanf("%lf%lf",&x,&y)!=EOF){
        count+=x*y/100;
    }
    printf("%lf",count);
    return 0;
}

freopen函数

  • 含义:重新定向输入输出流,在不改变代码的原貌下改变输入输出环境
  • 格式:FILE *fropen(const char *filename, const char *mode, FILE *stream);
  • 参数:
    filename:需要重定向到的文件名或文件路径(即应该从何处读入文件)
    mode: 代表文件访问权限的字符串。(“r”表示只读访问,“w”表示只写访问, “a”表示追加写入)
    stream : 需要被重定向的文件流(比如:stdin 标准输入流。本来应该是从stdin读数据 但它被重定向了)
  • 返回值:如果成功,则返回该指向输出流的文件指针,否则返回为NULL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值