8 条题解
-
3
#include <bits/stdc++.h> using namespace std; int main() { int a[5]; cin >> a[1] >> a[2] >> a[3] >> a[4]; sort (a + 1, a + 5); if (a[1] % 2 == 1 && a[1] + 2 == a[2] && a[2] + 2 == a[3] && a[3] + 2 == a[4]) cout << a[1] << "+2=" << a[2] << endl << a[2] << "+2=" << a[3] << endl << a[3] << "+2=" << a[4] << endl; else cout << a[4] << " " << a[3] << " " << a[2] << " " << a[1]; return 0; }
简简单单
-
1
这题需要用到reverse反转函数: reverse(起始地址,结尾的下一地址); 具体内容在课内第二年L8-7
参考代码(已AC):
#include <bits/stdc++.h> using namespace std; int a[4]; int main() { for(int i=1;i<=4;i++) cin>>a[i]; sort(a+1,a+5);//从小到大排序 if(a[1]+2==a[2]&&a[2]+2==a[3]&&a[3]+2==a[4]) for(int i=1;i<=3;i++) cout<<a[i]<<"+2="<<a[i+1]<<endl; else { reverse(a+1,a+5);//从大到小排序 for(int i=1;i<=4;i++) cout<<a[i]<<" "; } return 0; }
-
1
#include <iostream> using namespace std; int main() { int a, b, c, d, t; cin >> a >> b >> c >> d; if (a > b) { t = a; a = b; b = t; } if (b > c) { t = b; b = c; c = t; } //d最大 if (c > d) { t = c; c = d; d = t; } if (a > b) { t = a; a = b; b = t; } //abc中c最大 if (b > c) { t = b; b = c; c = t; } //ab中b最大 if (a > b) { t = a; a = b; b = t; } //相邻的2个数差值为2,且其中有一个数是奇数 if (a + 2 == b && b + 2 == c && c + 2 == d && a % 2 != 0) { cout << a << "+2=" << b << endl; cout << b << "+2=" << c << endl; cout << c << "+2=" << d << endl; } else { cout << d << " " << c << " " << b << " " << a << endl; } return 0; }
-
0
这一题大家怎么都在用sort函数呀,我才刚学到Level3,还没学到函数呢,不过我起码知道全局变量~ 好啦,不多讲,先来理一理思路:这题其实根本可以不用sort函数,直接数组排序就行,通过两个数组a和m将数组里的元素按从大到小排序,最后得到的结果在数组m中,直接根据情况输出就行~
没学到sort函数的,来看看数组排序思路:
Step 1:定义一个for循环嵌套语句,我们一会儿要用到其中的两个循环变量i和j;
Step 2:用判断最大值的方法,依次找出数组m的“最大值”(最大值、第二大值、第三大值和第四大值):如果a数组中的第j个元素是“最大值”(a数组中的第j个元素大于m数组中第i大的元素(由于是全局数组,暂时是0)),就将a数组中的第j个元素(包括0)保存到m数组中的第i个元素中,并将数组最大值的下标保存到变量p中;
Step 3:将a数组中的第p个元素设为0,这样子就能保证本次找出的最大值在数组a中会变为最小,而下一个所找出的最大值就不会重复,会是第二大的或第三大的或第四大的(根据情况而定);
Step 4:完成!
已AC,请放心食用
#include <iostream> using namespace std; int a[4], m[4], p; int main() { for (int i = 0; i < 4; i++) { cin >> a[i]; } for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (a[j] > m[i]) { m[i] = a[j]; p = j; } } a[p] = 0; } if (m[0] - 2 == m[1] && m[1] - 2 == m[2] && m[2] - 2 == m[3]) { cout << m[3] << "+2=" << m[2] << endl; cout << m[2] << "+2=" << m[1] << endl; cout << m[1] << "+2=" << m[0]; } else { for (int i = 0; i < 4; i++) { cout << m[i] << " "; } } return 0; }
养成好习惯,看后点个赞( •̀ ω •́ )✧!
大家连成心,赞赞变成金b( ̄▽ ̄)d!
👍👍👍👍👍
-
0
#include <iostream> #include <algorithm> using namespace std; bool cmp(int a, int b) { return a > b; } int main() { int a[4]; for (int i = 0; i < 4; i++) { cin >> a[i]; } sort(a, a + 4);//升序排列 if (a[0] + 2 == a[1] && a[1] + 2 == a[2] && a[2] + 2 == a[3]) { cout << a[0] << "+2=" << a[1] << endl; cout << a[1] << "+2=" << a[2] << endl; cout << a[2] << "+2=" << a[3]; } else { sort(a, a + 4, cmp);//降序排列 for (int i = 0; i < 4; i++) { cout << a[i] << " "; } } return 0; }
-
0
#include <iostream> #include <algorithm> using namespace std; int main() { int a[4]; for (int i = 0; i < 4; i++) { cin >> a[i]; } sort(a, a + 4); bool flag = true; for (int i = 0; i < 3; i++) { if (a[i] % 2 == 0 || a[i] + 2 != a[i + 1]) { flag = false; } } if (flag) { for (int i = 0; i < 3; i++) { cout << a[i] << "+2=" << a[i + 1] << endl; } } else { for (int i = 3; i >= 0; i--) { cout << a[i] << " "; } } return 0; }
-
0
这代码打了1个小时,用了最基础的知识,打的真累,终于对了,这是我的思路。 先判断哪个最大放在便量e中,第2大放在便量f中 第3大放在便量g中,最小在h中。再判断是不是连续奇数,是,输出h+2=g g+2=f f+2=e,不是,输出e到h,思路简单编起来却难。
#include <iostream> using namespace std; int main() { int a,b,c,d,e,f,g,h;//定义6个变量 cin >> a >> b >> c >> d; if(a > b && a > c && a > d)//判断谁最大 { e=a; if(b > c && b > d)//第2大 { f=b; if(c>d)//第3大 { g=c; h=b; } if(d>c)//第3大 { g=d; h=c; } } if(c > b && c > d) { f=c; if(b>d) { g=b; h=d; } if(d>b) { g=d; h=b; } } if(d > c && d > b) { f=d; if(c>b) { g=c; h=b; } if(b>c) { g=b; h=c; } } } if(b > a && b > c && b > d) { e=b; if(a > c && a > d) { a=f; if(c>d) { g=c; h=d; } if(d>c) { g=d; h=c; } } if(c > a && c > d) { f=c; if(a>d) { g=a; h=d; } if(d>a) { g=d; h=a; } } if(d > c && d > a) { f=d; if(a>c) { g=a; h=c; } if(c>a) { g=c; h=a; } } } if(c > b && c > a && a > d) { e=c; if(a > b && a > d) { a=f; if(d>b) { g=d; h=b; } if(b>d) { g=b; h=d; } } if(b > a && b > d) { f=b; if(d>a) { g=d; h=a; } if(a>d) { g=a; h=d; } } if(d > a && d > b) { f=d; if(b>a) { g=b; h=a; } if(a>b) { g=a; h=b; } } } if(d > b && d > c && d > a) { e=d; if(a > c && a > b) { f=a; if(c>b) { g=c; h=b; } if(b>c) { g=b; h=c; } } if(b > c && b > a) { f=b; if(c>a) { g=c; h=a; } if(a>c) { g=a; h=c; } } if(c > b && c > a) { f=c; if(b>a) { g=b; h=a; } if(a>b) { g=a; h=b; } } } if(a%21 && b%21 && c%21 && d%21)//判断是不是奇数 { if(e-2f && e-4g && e-6==h)//判断相龄 { cout << h << "+2=" << g << endl; cout << g << "+2=" << f << endl; cout << f << "+2=" << e << endl; } else { cout << e << " " << f << " " << g << " " << h << " "; } } else { cout << e << " " << f << " " << g << " " << h << " "; } return 0; }
-
-1
不得不说,这题太恶心了!!!😕😕😕(我搞了好久)
🚀️ 🚀️ 🚀️ 直接上代码!(已AC)
#include<bits/stdc++.h> using namespace std; int main() { int a[4]; // 创建1个长度为4的变量。 for (int i = 0; i < 4; i++) { cin >> a[i]; // 依次输入。 } sort(a, a + 4); // 用sort()函数对数组a进行排序。 if (a[0] + 2 == a[1] && a[1] + 2 == a[2] && a[2] + 2 == a[3]) // 判断4个数是否是连续奇数, 依次打印出。 { cout << a[0] << "+2=" << a[1] << endl; cout << a[1] << "+2=" << a[2] << endl; cout << a[2] << "+2=" << a[3] << endl; } else { for (int i = 3; i >= 0; i--) // 否则从大到小输出数组a; { cout << a[i] << " "; } } }
- 1
信息
- ID
- 41
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 4
- 标签
- 递交数
- 240
- 已通过
- 115
- 上传者