中级天翼
4701 螺旋输出矩阵经验值:0
题目描述 Description
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
输入描述 Input Description
第一行,输入正整数m和n,
接下来m行,
每行输入n个正整数。
输出描述 Output Description
输出一行,按照顺时针螺旋顺序,输出矩阵中的所有元素,元素之间用空格隔开。
样例输入 Sample Input
3 3 1 2 3 4 5 6 7 8 9
样例输出 Sample Output
1 2 3 6 9 8 7 4 5
数据范围及提示 Data Size & Hint
n,m<=9 ,1<= 数组元素<=100
武建豪在2021-03-28 11:54:17追加了内容
#include<iostream>
using namespace std;
int main()
{
int m,n,i,j;
cin>>m>>n;
int a[m][n];
int num=1;
for(i=0;i<m/2;i++)
{
for(j=i;j<n-i;j++)
a[i][j]=num++;
for(j=i+1;j<m-i;j++)
a[j][n-i-1]=num++;
for(j=n-i-2;j>i;j--)
a[m-i-1][j]=num++;
for(j=m-i-1;j>i;j--)
a[j][i]=num++;
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
}
武建豪在2021-03-29 21:34:35追加了内容
不懂就问:5520
经验值:800
题目描述 Description
东汉末年,刘备结识了关羽和张飞,他们决定一起匡扶汉室。于是在桃园结义,此时需要知道谁是大哥,要按照年龄排序。这个问题很简单。现在假设不止3个人,而是有n个人,请你帮这n个人按年龄从大到小排序。
输入描述 Input Description
第一行,一个整数n,表示人数
接下来n行,每行4个部分,name y m d,表示这个人的姓名和出生的年月日
输出描述 Output Description
把这n个人按照年龄从大到小排序,如果年龄一样,按照输入的顺序,先输入的后输出
样例输入 Sample Input
3
LiuBei 2020 1 1
GuanYu 2020 1 2
ZhangFei 2020 1 3
样例输出 Sample Output
LiuBei
GuanYu
ZhangFei
数据范围及提示 Data Size & Hint
n<=10000
#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdlib>
using namespace std;
struct STU{
string name;
int a,y,m,d,id,i;
} s[20000];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
else return x.d>y.d;
return x.id>y.id;
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
}
for(int i=1;i<=n;i++){
s[i].id=i;
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
样例都过了,但是是0分百思不得其解
武建豪在2021-03-29 21:44:00追加了内容
ding
武建豪在2021-03-30 22:30:20追加了内容
@张帆
#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdlib>
using namespace std;
struct STU{
string name;
int a,y,m,d,id,i;
} s[20000];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.id<y.id;
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
}
for(int i=1;i<=n;i++){
s[i].id=i;
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
0分
高级守护
5520
struct xx{
string 名字;
变量 x,y,z;
int id;
}a[77777];
bool cmp(xx x1,xx x2){
如果(x1.x!=x2.x){
返回 x1.x<x2.x;
}
如果(x1.y!=x2.y){
返回 x1.y<x2.y;
}
如果(x1.z!=x2.z){
返回 x1.z<x2.z;
}
返回 x1.id>x2.id;
}
int main(){
变量 n;
输入>>n;
循环(int i=1;i<=n;i++){
输入>>a[i].名字>>a[i].x>>a[i].y>>a[i].z;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
循环(int i=1;i<=n;i++){
输出<<a[i].名字<<换行;
}
周承阳在2021-03-30 22:41:55追加了内容
求采纳
中级天翼
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
else return x.d>y.d;
return x.id>y.id;
}
to
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.id<y.id;
}
得其解也。
张帆在2021-03-30 22:33:24追加了内容
好吧算我错了:
bool cmp(team a,team b){
if(a.t1!=b.t1) return a.t1<b.t1;
if(a.t2!=b.t2) return a.t2<b.t2;
if(a.t3!=b.t3) return a.t3<b.t3;
return a.idx>b.idx;
}
//这是我的
张帆在2021-03-30 22:33:29追加了内容
好吧算我错了:
bool cmp(team a,team b){
if(a.t1!=b.t1) return a.t1<b.t1;
if(a.t2!=b.t2) return a.t2<b.t2;
if(a.t3!=b.t3) return a.t3<b.t3;
return a.idx>b.idx;
}
//这是我的
中级守护
我只讲5520哈(4701我也不会(虽然写过代码了……))
你这是啥?(多写的?)
PS:如果还是错,那么建议多检查检查这里(即核心代码),总会AC的~
祝早日AC!