zzulioj2320 古钱币(编程脱衣舞,层层优化,绝了!!!)

news/2025/1/12 2:42:05/

题目描述
小强同学的爸爸是收藏爱好者,家里收藏了好多古钱币,有唐、宋、元、明、清年代的钱币,分别用A、B、C、D、E来表示,每个钱币的价格是5、4、3、2、1(万元),小强考上了大学,开学的时候,小强随机拿了四个古钱币作为第一学期的生活费,这四个古钱币能换多少钱,平均每个古钱币能换多少钱?
输入
输入四个古钱币的代号,用空格隔开。
输出
计算并输出古钱币总共能换多少万元,平均每个古钱币能换多少万元,用空格隔开,保留两位小数。
样例输入
D A A C
样例输出
15.00 3.75
【分析】
本题的思路很简单,但要注意的是输入的时候,空格也是字符,怎么解决这个问题呢?
在这里插入图片描述
上图是这道题的提交情况,大多数同学都是因为答案错误而出错,为什么会错呢?还是上面那个问题,没有注意细节!!!

现在我宣布程序脱衣舞现在开始

程序一

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{char ch1,ch2,ch3,ch4;double sum=0.0;scanf("%c %c %c %c", &ch1, &ch2, &ch3, &ch4);if(ch1=='A')sum+=5;if(ch1=='B')sum+=4;if(ch1=='C')sum+=3;if(ch1=='D')sum+=2;if(ch1=='E')sum+=1;if(ch2=='A')sum+=5;if(ch2=='B')sum+=4;if(ch2=='C')sum+=3;if(ch2=='D')sum+=2;if(ch2=='E')sum+=1;if(ch3=='A')sum+=5;if(ch3=='B')sum+=4;if(ch3=='C')sum+=3;if(ch3=='D')sum+=2;if(ch3=='E')sum+=1;if(ch4=='A')sum+=5;if(ch4=='B')sum+=4;if(ch4=='C')sum+=3;if(ch4=='D')sum+=2;if(ch4=='E')sum+=1;printf("%.2f %.2f\n",sum,sum*1.0/4);return 0;
}

还好是拿4个币,不然世界上就多了一个死于敲代码过度的人了(哈哈哈~)
程序二

#include<stdio.h>
int money(char ch)
{int sum=0;if(ch=='A')sum=5;if(ch=='B')sum=4;if(ch=='C')sum=3;if(ch=='D')sum=2;if(ch=='E')sum=1;return sum;
}
int main()
{char ch1,ch2,ch3,ch4;double sum=0.0;scanf("%c %c %c %c", &ch1, &ch2, &ch3, &ch4);int  sum1=money(ch1);int  sum2=money(ch2);int  sum3=money(ch3);int  sum4=money(ch4);sum=sum1+sum2+sum3+sum4;printf("%.2f %.2f\n",sum,sum/4);return 0;
}

是不是简单一些了?这还不够!go on!!!

程序三

#include<stdio.h>
int money(char ch)
{int sum=5-(ch-'A');	return sum;
}
int main()
{char ch1,ch2,ch3,ch4;double sum=0.0;scanf("%c %c %c %c", &ch1, &ch2, &ch3, &ch4);sum=money(ch1)+money(ch2)+money(ch3)+money(ch4);printf("%.2f %.2f\n",sum,sum/4);return 0;
}

别急,还有呢!

程序四

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{char str[10];scanf("%[^\n]",str);      /*见补充*/int  sum=('A'-str[0]+5)+('A'-str[2]+5)+('A'-str[4]+5)+('A'-str[6]+5);printf("%.2f %.2f\n",sum*1.0,sum*1.0/4);return 0;
}

补充

%[^\n] ^ 这个符号的意思 是取反
然后%[^\n] 表示除了换行符号都可以存入字符串中
%s 会自动跳过空格换行等字符
scanf输入单个字符的话,像空格换行tab这些不可见附也是算在字符里的,具体可以查看acsii对照表 。

心得

脱衣舞演完了,不知道大家有何感想呢?可能我实际地经历过这些变化,深刻地体会到编程语言其实并不是”死“的。以前,我总是觉得这些编程语言很严肃,现在发现其实严肃是一回事,灵活是一回事,也深刻体会到了自己的不足,有待提高!!!

寄语

这是老师送给我的话,与大家共勉!!!
欢迎评论,欢迎关注,欢迎私信!!!
在这里插入图片描述


http://www.ppmy.cn/news/139339.html

相关文章

洛谷 P2320 [HNOI2006]鬼谷子的钱袋 思维+二进制

https://www.luogu.org/problem/P2320 题目描述 鬼谷子非常聪明&#xff0c;正因为这样&#xff0c;他非常繁忙&#xff0c;经常有各诸侯车的特派员前来向他咨询时政。 有一天&#xff0c;他在咸阳游历的时候&#xff0c;朋友告诉他在咸阳最大的拍卖行&#xff08;聚宝商行&a…

哈理工OJ P2320:OX

题目链接&#xff1a;OX 题意 &#xff1a;给出一个3X3的黑白棋棋盘&#xff0c;棋盘上有若干黑白子&#xff0c;再给出下一个下的人&#xff0c;问下一个下的人能否赢 分析&#xff1a;考虑到只有39种状态&#xff0c;故用一个数保存目前棋盘的状态&#xff0c;记为value&…

Citrix Receiver 错误编号2320

Citrix Receiver 错误编号2320 安装完citrix receiver后点击快捷方式启动应用&#xff0c;出现以上报错解决方法&#xff1a;1 打开注册表 搜索 allowhotkey2 删除allowhotkey键值 注意&#xff0c;删除前请备份该键值&#xff01; 转载于:https://blog.51cto.com/141686/21210…

【实战】烂泥:关于佳能IR2320N网络打印机的安装域使用

第一步&#xff1a;首先要为该机器设置一个IP地址&#xff0c;具体方法是&#xff1a;附加管理→系统管理→网络管理→IPv4→IP地址&#xff0c;输入相应的IP地址&#xff0c;子网掩码&#xff0c;默认网关。如果你要查看该机的MAC地址的话&#xff0c;那你也可以在此查看呢。选…

AHT20温湿度传感器STM32-I2C驱动,替代DHT11/DHT12/AM2320/SHT20/SHT30,IIC代码兼容AHT10/15-MEMS温湿度传感器

AHT20是国内奥松生成的I2C接口的MEMS温湿度传感器&#xff0c;ADC位数为20Bit&#xff0c;具有体积小、精度高、成本低等优点。相较于AHT10&#xff0c;最显著的变化是体积由 5*4*1.6mm&#xff0c;缩小到 3*3*1.0mm。相对湿度精度 RH2%&#xff0c;温度精度 T0.3C。相对湿度测…

ZOJ 2320 Cracking' RSA

其次布尔线性方程组&#xff0c;高斯消元。这道题目的关键部分是看的神牛watashi的思路。另附上watashi的思路 我把他的java模板翻译成了C的了。。。存起来以后当模板用。。。a[i][j]表示第i个数含有质数p[j]的个数&#xff0c;奇数个的话就是true&#xff0c;偶数个就是false。…

STM32 AM2320 温湿度万年历 微信小程序显示及控制

功能描述: 使用STM32F103R8T6&#xff0c;红外遥控器&#xff0c;数码管&#xff0c;串口&#xff0c;预留ADC&#xff08;4~20mA输入、0~10V输入&#xff09;、485、以太网、WiFi、SD卡、USB_OTG等功能。单总线的方式采集温湿度&#xff08;因整个系统时序要求&#xff0c;所…

STM32单片机软件模拟I2C读取AM2320温湿度传感器数据

STM32单片机使用软件模拟IIC读取AM2320温湿度传感器的数据并显示在0.96寸OLED屏上。 我用的单片机是STM32F103C8T6&#xff0c;程序用的是ST标准库写的。 STM32使用硬件I2C读取SHTC3温湿度传感器&#xff1a;https://blog.zeruns.tech/archives/692.html STM32单片机读取AHT1…