垃圾PTA:7-3 输出数组元素 (15分)
本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。
输入格式:
输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。
输出格式:
顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。
输入样例:
10
5 1 7 14 6 36 4 28 50 100
输出样例:
-4 6 7
-8 30 -32
24 22 50
最近补修C语言,跟大一的学弟们同台竞技.....
然后最近正好在学C++,突发奇想用C++写这个作业。正好学到迭代器和向量,直接就学以致用!
但是确实代码复杂了不少,但我感觉迭代器我会了!
PTA上面不允许上传c++代码,于是我只能够直接抄网上代码了!
然后把C++代码放出来给大家白嫖学习~
#include <iostream> #include <vector> using namespace std; vector<int> vec; vector<int> temp_vec; vector<vector<int>> ttemp_vec; int main() { int n; cin>>n; for(int i=0;i<n;i++) { int a; cin>>a; vec.push_back(a); } for(vector<int>::iterator i = vec.begin();i !=vec.end();i++) { int a=*i; int b = *(i+1); if(i+1 != vec.end()) { temp_vec.push_back(b-a); if(temp_vec.size() == 3) { ttemp_vec.push_back(temp_vec); temp_vec.clear(); } } } for(auto i = ttemp_vec.begin();i !=ttemp_vec.end();i++) { vector<int> ele = *i; for(vector<int>::iterator j = ele.begin();j !=ele.end();j++) { cout<<*j; if(j+1 != ele.end()) { cout<<" "; } } if(i+1 != ttemp_vec.end()) { cout<<endl; } } return 0; }
你嫖嫖我,我嫖嫖你,大家都是白嫖人!