首页
闲言碎语
个人导航
文章归档
友情链接
留言簿
关于
更多
网络电视
云盘
统计
推荐
付费资源
朋友圈集赞
二维码生成
音乐下载
Search
1
全网首发-小米AX6000路由器解锁ssh并固化ssh+2.5G有线mesh组网+公网访问路由后台+红米AX6/小米AX6/AX3600/AX6000/AX9000全系列适用
6,745 阅读
2
青龙面板必装依赖及青龙各种问题解决
3,916 阅读
3
NAS一键批量清除重复文件
3,535 阅读
4
群辉DSM7.0.1安装bootstrap后解决wget: error while loading shared libraries: libgnuintl.so.8: cannot open shared object file: No such file or directory
1,598 阅读
5
《爱情公寓4》全集高清迅雷下载
894 阅读
闲言碎语
学习
福利
技术百科
WordPress
Typecho
软件资源
iPhone
Android
PC软件
CODE
C
VB
PHP
NAS
青龙
登录
Search
标签搜索
wordpress
News
iphone
vb
iOS
technology
渗透
QQ
php
talk
JavaScript
hack
Typecho
NAS
福利
c++
diy
c
免杀
评测
Jonty
累计撰写
275
篇文章
累计收到
976
条评论
今日撰写
0
篇文章
首页
栏目
闲言碎语
学习
福利
技术百科
WordPress
Typecho
软件资源
iPhone
Android
PC软件
CODE
C
VB
PHP
NAS
青龙
页面
闲言碎语
个人导航
文章归档
友情链接
留言簿
关于
网络电视
云盘
统计
推荐
付费资源
朋友圈集赞
二维码生成
音乐下载
用户登录
登录
搜索到
4
篇与
的结果
2017-04-18
2017第八届蓝桥杯 购物单答案
标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。 小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。 现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。 取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。 以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。 -------------------- **** 180.90 88折 **** 10.25 65折 **** 56.14 9折 **** 104.65 9折 **** 100.30 88折 **** 297.15 半价 **** 26.75 65折 **** 130.62 半价 **** 240.28 58折 **** 270.62 8折 **** 115.87 88折 **** 247.34 95折 **** 73.21 9折 **** 101.00 半价 **** 79.54 半价 **** 278.44 7折 **** 199.26 半价 **** 12.97 9折 **** 166.30 78折 **** 125.50 58折 **** 84.98 9折 **** 113.35 68折 **** 166.57 半价 **** 42.56 9折 **** 81.90 95折 **** 131.78 8折 **** 255.89 78折 **** 109.17 9折 **** 146.69 68折 **** 139.33 65折 **** 141.16 78折 **** 154.74 8折 **** 59.42 8折 **** 85.44 68折 **** 293.70 88折 **** 261.79 65折 **** 11.30 88折 **** 268.27 58折 **** 128.29 88折 **** 251.03 8折 **** 208.39 75折 **** 128.88 75折 **** 62.06 9折 **** 225.87 75折 **** 12.89 75折 **** 34.28 75折 **** 62.16 58折 **** 129.12 半价 **** 218.37 半价 **** 289.69 8折 -------------------- 需要说明的是,88折指的是按标价的88%计算,而8折是按80%计算,余者类推。 特别地,半价是按50%计算。 请提交小明要从取款机上提取的金额,单位是元。 答案是一个整数,类似4300的样子,结尾必然是00,不要填写任何多余的内容。 特别提醒:不许携带计算器入场,也不能打开手机。第一种方法用excel,数据稍微处理下。第二种用代码实现。//处理后的数据,用替换处理,别出错了。 180.90 88 10.25 65 56.14 90 104.65 90 100.30 88 297.15 50 26.75 65 130.62 50 240.28 58 270.62 80 115.87 88 247.34 95 73.21 90 101.00 50 79.54 50 278.44 70 199.26 50 12.97 90 166.30 78 125.50 58 84.98 90 113.35 68 166.57 50 42.56 90 81.90 95 131.78 80 255.89 78 109.17 90 146.69 68 139.33 65 141.16 78 154.74 80 59.42 80 85.44 68 293.70 88 261.79 65 11.30 88 268.27 58 128.29 88 251.03 80 208.39 75 128.88 75 62.06 90 225.87 75 12.89 75 34.28 75 62.16 58 129.12 50 218.37 50 289.69 80//代码如下 #include<stdio.h> int main() { FILE *fp; if( (fp=fopen("1.txt","r")) ==NULL) { printf("ERROR"); exit(0); } float sum=0; float a[50]; int b[50]; char c; for(int i=0;i<50;i++)//50为行数 { fscanf(fp,"%f%c%d",&a[i],&c,&b[i]); sum+=a[i]*b[i]/100; //printf("%.2f %d\n",a[i],b[i]); } printf("%f\n",sum); close(fp); }
2017年04月18日
109 阅读
0 评论
0 点赞
2017-03-10
递推和递归方法在C语言程序设计中的应用
## 1.递归和递推算法 递归作为一种算法在程序设计语言中广泛应用。它是调用一个函数的过程中又出现直接或者间接地调用该函数本身。递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写程序能使程序变得简洁和清晰。递推算法是一种用若干步可重复的简运算(规律)来描述复杂问题的方法。递推是序列计算机中的一种常用算法。递推法的特点是从一个已知的事实出发,按照一定规律推出下一个事实,再从这个新的已知事实出发,再向下推出一个新的事实。 ## 2.问题提出 一场球赛开始前,售票工作正在紧张进行中,每张球票为50元,现有m+n个人排队等待购票,其中有m个人手持50元的钞票,另外n个人手持100元的钞票。假设开始售票时售票处没有零钱,求出这m+n个人排队购票,使售票处不至出现找不开钱的局面的不同排队种数(这里正整数m、n从键盘输入)。这个问题用一般的解决方法非常麻烦,下面用递归和递推方法解决。 ## 3 购票问题分析 这是一道组合计数问题。令f(m,n)表示有m个人手持50元的钞票,n个人手持100元的钞票时共有的方案总数。 (1)n=0。n=0意味着排队购票的所有人手中拿的都是50元的钞票,那么这m个人的排队总数为1,即f(m,0)=1。 (2)m
2017年03月10日
95 阅读
0 评论
0 点赞
2017-02-23
蓝桥杯:基础练习 十六进制转八进制
基础练习 十六进制转八进制问题描述: 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式: 输入的第一行为一个正整数n (1<=n<=10)。接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式: 输出n行,每行为输入对应的八进制正整数。 注意: 输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0。 时间限制: 1.0s 内存限制: 512.0MB 样例输入:2 39 123ABC样例输出:71 4435274提示: 先将十六进制数转换成某进制数,再由某进制数转换成八进制。算法分析:这个题目,我们要看到 "每个十六进制数长度不超过100000" 这句话。注意是100000位,不是<100000;我们这里主要思想是先将十六进制转化为二进制(每4位二进制对应1位十六进制),然后将二进制转化为八进制(每3位二进制对应1位八进制)。如:十六进制 A1 二进制 1010 0001 八进制 (010 100 001)241C语言实现如下:①采用gets输入时,需要处理%d在输入流中留下的回车;②合理定义数组大小,其中十六进制位数与二进制是4倍关系,与八进制是4/3关系;③使用strcat拼接字符串时注意,为了加快速度,需采用下文中方式,否则会超时(避免每次都从字符串首部查找’\0’);④对于所得二进制可能不为3的整数倍时,01,101,110,101…..,这里采用取余法将01单独处理,后面整体处理;⑤由于采用了while(scanf(”)!=EOF)输入形式,注意每次对尾部进行截断,避免对下次计算造成影响;⑥以下程序采用纯C语言编写。#include <stdio.h> #include <string.h> #include <math.h> char Hex[10][100001]; // 十六进制 char Oct[10][150000]; // 八进制 将列数扩大4/3倍以上 char Bin[10][400004]; // 二进制 将列数扩大为4倍以上 //十六进制转二进制 void Hex2Bin(int row) { int hexcol=0, bincol=0; Bin[row][0] = '\0'; //strcat 识别'\0' while (Hex[row][hexcol] != '\0') { switch (Hex[row][hexcol]) {//&Bin[row][bincol] 比直接使用Bin[row]速度快,避免从头查找'\0' case '0': strcat(&Bin[row][bincol],"0000"); break; case '1': strcat(&Bin[row][bincol],"0001"); break; case '2': strcat(&Bin[row][bincol],"0010"); break; case '3': strcat(&Bin[row][bincol],"0011"); break; case '4': strcat(&Bin[row][bincol],"0100"); break; case '5': strcat(&Bin[row][bincol],"0101"); break; case '6': strcat(&Bin[row][bincol],"0110"); break; case '7': strcat(&Bin[row][bincol],"0111"); break; case '8': strcat(&Bin[row][bincol],"1000"); break; case '9': strcat(&Bin[row][bincol],"1001"); break; case 'A': strcat(&Bin[row][bincol],"1010"); break; case 'B': strcat(&Bin[row][bincol],"1011"); break; case 'C': strcat(&Bin[row][bincol],"1100"); break; case 'D': strcat(&Bin[row][bincol],"1101"); break; case 'E': strcat(&Bin[row][bincol],"1110"); break; case 'F': strcat(&Bin[row][bincol],"1111"); break; } ++hexcol; bincol += 4; } // puts(Bin[row]); } //二进制转八进制 void Bin2Oct(int row) { int bincol,octcol=0,mod,num,curcol=0,flag=0; //curcol 表示当前扫描到二进制位置 //flag用来标记首部是否已经出现了非0元素 bincol = strlen(Bin[row]); mod = bincol % 3; // 解决01, 101,110,011...问题, //划分为2部分分别计算 //01------101,110,011 //单独计算01 num = 0; while (--mod >= 0) { if (Bin[row][curcol++] == '1') num += (int)pow(2,mod); } //跳过首部0 if (num != 0) { Oct[row][octcol++] = '0'+num; //转数字为字符 flag = 1; //标记第一个不为0位置 } //计算101,110,011... while (Bin[row][curcol] != '\0') { mod = 3; num = 0; //每3位一计算,2^2=4, 2^1=2, 2^0=1 while (--mod >= 0) { if (Bin[row][curcol++] == '1') num += (int)pow(2,mod); } //跳过首部0 if (num != 0 || flag == 1) { Oct[row][octcol++] = '0'+num; //转数字为字符 flag = 1; } } //将尾部截断 Oct[row][octcol] = '\0'; } //十六进制转八进制 void Hex2Oct(int n) { int row; for (row = 0; row < n; ++row) { Hex2Bin(row); // 16->2 Bin2Oct(row); // 2->8 } } int main(void) { int row,n; while (scanf("%d",&n) != EOF) { getchar(); //消除输入流——回车误差 for (row = 0; row < n; ++row) { gets(Hex[row]); } //十六进制转八进制 Hex2Oct(n); //打印 for (row = 0; row < n; ++row) { puts(Oct[row]); } } return 0; }
2017年02月23日
58 阅读
0 评论
0 点赞
2016-06-15
C语言实现将字符串转换为数字的方法
本文实例讲述了C语言实现将字符串转换为数字的方法。分享给大家供大家参考。具体实现方法如下:C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)的数字。以下是用atoi()函数将字符串转换为整数的一个例子:#include <stdio.h> #include <stdlib.h> void main (void); void main (void) { int num; char * str = "100"; num = atoi(str); printf("The string 'str' is %s and the number 'num' is %d. \n",str, num); }atoi()函数只有一个参数,即要转换为数字的字符串。atoi()函数的返回值就是转换所得的整型值。下列函数可以将字符串转换为数字:{alert type="info"}函数名 作 用atof() 将字符串转换为双精度浮点型值atoi() 将字符串转换为整型值atol() 将字符串转换为长整型值strtod() 将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字strtol() 将字符串转换为长整值,并报告不能被转换的所有剩余数字strtoul() 将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字{/alert}将字符串转换为数字时可能会导致溢出,如果你使用的是strtoul()这样的函数,你就能检查这种溢出错误。请看下例:#include <stdio.h> #include <stdlib.h> #include <limits.h> void main(void); void main (void) { char* str = "1234567891011121314151617181920" ; unsigned long num; char * leftover; num = strtoul(str, &leftover, 10); printf("Original string: %s\n",str); printf("Converted number: %1u\n" , num); printf("Leftover characters: %s\n" , leftover); }在上例中,要转换的字符串太长,超出了无符号长整型值的取值范围,因此,strtoul()函数将返回ULONG_MAX(4294967295),并使。char leftover指向字符串中导致溢出的那部分字符;同时,strtoul()函数还将全局变量errno赋值为ERANGE,以通知函数的调用者发生了溢出错误。函数strtod()和strtol()处理溢出错误的方式和函数strtoul()完全相同,你可以从编译程序文档中进一步了解这三个函数的有关细节。
2016年06月15日
86 阅读
0 评论
0 点赞