7-1 寻找250
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。
输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
5
#include<iostream> using namespace std; int main(){ int count=0; int a=0; while(a!=250){ cin>>a; count++; }cout<<count; return 0; }
7-2 日期格式化
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:
03-15-2017
输出样例:
2017-03-15
作者: 陈越
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
#include<iostream> using namespace std; int main(){ int a,b,c; scanf("%d-%d-%d",&a,&b,&c); printf("%04d-%02d-%02d",c,a,b); return 0; }
这道题也不算难,分类读入年月日,按顺序输出就好。
7-3 阅览室
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。
注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。
输入格式:
输入在第一行给出一个正整数N(≤10),随后给出N天的纪录。每天的纪录由若干次借阅操作组成,每次操作占一行,格式为:
书号([1, 1000]内的整数) 键值(S或E) 发生时间(hh:mm,其中hh是[0,23]内的整数,mm是[0, 59]内整数)
每一天的纪录保证按时间递增的顺序给出。
输出格式:
对每天的纪录,在一行中输出当天的读者借书次数和平均阅读时间(以分钟为单位的精确到个位的整数时间)。
输入样例:
3 1 S 08:10 2 S 08:35 1 E 10:00 2 E 13:16 0 S 17:00 0 S 17:00 3 E 08:10 1 S 08:20 2 S 09:00 1 E 09:20 0 E 17:00
输出样例:
2 196 0 0 1 60
#include<iostream> using namespace std; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ int count=0,time=0; int id=1; string s; int a,b; int num[1005]{0}; int sent[1005]{0}; while(id!=0){ cin>>id>>s; scanf("%d:%d",&a,&b); int t=a*60+b; if(s[0]=='S'){ sent[id]=1; num[id]=t; }else{ if(sent[id]==1){ count++; time+=(t-num[id]); num[id]=0; sent[id]=0; } } } double tt=time*1.0; if(count>1){ tt=(time*1.0)/count; }printf("%d %d\n",count,(int)(tt+0.5)); } return 0; }
这道题做过之前,现在再做有了思路但是代码敲起来 还是出现了问题。