2019-07-10原来已经毕业一年了呀,原来傻了吧唧的小包子现在变成了傻了吧唧的老包子,嘤嘤嘤……很多人一年多都没见了呀,毕业后不知去向,想想那天下午我们一起吃鸡在游戏里看见了好看的晚霞,真的好开心
2019-07-10 15:52
253 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44412218/article/details/95319598
1012B
依旧很简单,就是给输入的数分类,输出……
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
- A1 = 能被 5 整除的数字中所有偶数的和;
- A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2+n3−n4⋯;
- A3 = 被 5 除后余 2 的数字的个数;
- A4 = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
- A5 = 被 5 除后余 4 的数字中最大数字。
新的知识点,就是控制输出精度,使用setprecision( )函数,需要添加头文件 #include<iomanip>,假如输出两位小数点精度的a,前面需要加fixed(加了是控制小数点后位数的,不加是控制整体位数的),即cout<<fixed<<setprecision(2)<<a;
代码:
[code]#include <iostream> #include <vector> #include<iomanip> using namespace std; int main() { int num, sum1 = 0, sum2 = 0, sum3 = 0,sum5 = 0, i = 0; float a4, sum4 = 0; int N; int flag = 1; int a = 0; cin >> N; for (int j = 0; j<N; j++) { cin >> num; if (num % 10 == 0) { sum1 += num; a = 1; } else if (num % 5 == 1) { sum2 += flag*num; flag *= -1; } else if (num % 5 == 2) sum3++; else if (num % 5 == 3) { sum4 += num; //cout << sum4 << endl; i++; //cout << i << endl; } else if (num % 5 == 4) sum5 = sum5<num ? num : sum5; else continue; } if (a) cout << sum1; else cout << "N"; if (sum2) cout << " " << sum2; else cout << " N"; if (sum3) cout << " " << sum3; else cout << " N"; if (i) { a4 = sum4 / i; cout << " " << fixed << setprecision(1) << a4; } else cout << " N"; if (sum5) cout << " " << sum5; else cout << " N"; system("PAUSE"); return 0; }
要考虑,sum1和sum2为0 的条件,然后就没什么了。
下午应付完老师,就去做PAT甲级的题,然后发现阻挡我做题的最重要一点,就是题目看不懂,看着输入输出样例研究半天,也没猜对,不得不打开我的网易字典……
polynomials 多项式
这道题就是给出两行数字,先给次数,后面紧跟着系数。两行汇总输出,小数点保留后面一位。
然后我只完成了15/25,找不到哪里错了;先贴代码。
[code]#include<iostream> #include<iomanip> #include <vector> using namespace std; int main() { float pol1[1005] = { 0 }; float pol2[1005] = { 0 }; float ans[1000]; int i, j, a1, a2, a,c,d; float b; int count = 0; cin >> a1; while (cin >> a >> b) { pol1[a] = b; count++; if (count == a1) break; } cin >> a2; count = 0; while (cin >> a >> b) { pol2[a] = b; count++; if (count == a2) break; } count = 0; vector<int>num; for (j = 0; j<1005; j++) { ans[j] = pol1[j] + pol2[j]; if (ans[j]!=0) num.push_back(j); } int l = num.size(); cout << l << " "; if(l==0) cout<<"0"; if (l == 1) { c = ans[num[0]]; if (c - ans[num[0]] == 0) cout << num[0] << " " << ans[num[0]]; else cout << num[0] << " " <<fixed<< setprecision(1) << ans[num[0]]; } else { for (i = l-1; i>0; i--) { c = ans[num[i]]; if(ans[num[i]]==0) continue; if (c - ans[num[i]] == 0) cout << num[i] << " " << ans[num[i]] << " "; else cout << num[i] << " " << fixed << setprecision(1) << ans[num[i]] << " "; } c = ans[num[0]]; if (c - ans[num[0]] == 0) cout << num[0] << " " << ans[num[0]]; else cout << num[0] << " " << fixed << setprecision(1) << ans[num[0]]; } system("PAUSE"); return 0; }
说几个应该注意的问题吧,首先系数为0的项不进行输出,这个直接滤过了,当系数不为零是才能push_back进去。还有就是精确到小数点后面一位,这个我想了很久(让你不用printf的后果……) ,首先所有数字都是float形式,然后我定义一个int,用这个int减去float,如果不为零,说明是小数,就用上面说的fixed<<setprecision()<<进行输出就好。然后看了别人的答案,好一个printf啊……简单明了,printf("%0.1f", a[i]),心痛了…记住这个上午就不用这么费劲找了呵呵呵……
然后百度了别人的答案,跟我思路一样,我实在不知道自己错在哪里了QAQ 只能等哪天老宋有时间帮我看一下了哈哈哈哈哈,抱紧大腿!
今天就先这样啦,爱你!
相关文章推荐
- 毕业那天我们一起失恋
- 这一年,我们一起毕业上
- 过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
- 这一年,我们毕业了
- 一年多了,回头想想这一年对it行业的感受
- 我们为什么需要校友录 又到一年毕业时--毕业感怀文集
- 过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
- 这一年我们一起敲过的C++代码
- 给力啊, 我做的《点点钻石》 for iPad(新增双人PK玩法)现在已经冲入了中国区游戏总榜...
- 过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
- 超诚实讽刺插画,原来科技已经把我们变得那么病态了!
- 毕业不到一年就成为管理者?原来是这个原因
- 这一年,我们一起追过的梦想
- 过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
- 现在的我们已经到了谈婚论嫁的年龄(在网上看到的一篇很好的文章,看了以后很是感慨)
- C语言数据结构之单向链表(已经调试可以实现相应的功能了,可是还是有几个问题现在还是不大理解,希望大家能够一起探讨)
- 过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
- 其实现在的我们也有很多梦想,比如低谷时想未来做一个什么样的公司,未来买什么样的豪宅。但是仅限于自我满足的想想,然后继续平庸的生活。
- 过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
- about将近1年来的一点反思(从毕业最后一年的培训结束到毕业后将近半年)