【题目描述】
小强同学的爸爸是收藏爱好者,家里收藏了好多古钱币,有唐、宋、元、明、清年代的钱币,分别用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对照表 。
【心得】
脱衣舞演完了,不知道大家有何感想呢?可能我实际地经历过这些变化,深刻地体会到编程语言其实并不是”死“的。以前,我总是觉得这些编程语言很严肃,现在发现其实严肃是一回事,灵活是一回事,也深刻体会到了自己的不足,有待提高!!!
【寄语】
这是老师送给我的话,与大家共勉!!!
欢迎评论,欢迎关注,欢迎私信!!!