1 条题解
-
0
自动搬运
来自洛谷,原作者为

wuyonghuming
**搬运于
2025-08-24 22:20:53,当前版本为作者最后更新于2020-06-25 10:24:05,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这道题目直接按照题目说的模拟就行了
k=0时
damir marko darko damir marko darkofor(int i=1;i<=r;i++)//循环每一行 { for(int j=1;j<=c;j++)//循环每一列 { cout<<m[i][j];//输出答案 } cout<<endl;//下一行 }k=45时
damir marko darko d m a d a m a r i r k r k o ofor(int i=1;i<=r+c-1;i++)//输出有行加列减一行 { for(int a=1;a<=abs(r-i);a++)//列数减去输出的行数的绝对值是这行前面的空格数 { cout<<' ';//输出空格 } for(int a=r;a>=1;a--)//先输出行坐标大的所以从后往前 { for(int b=c;b>=1;b--)//从后往前 { if(a+b==i+1)//如果行加上列是输出的行数减一那么这个数就在这一行 { cout<<m[a][b]<<' ';//输出 } } } cout<<endl;//下一行 }k=90时
damir marko darko dmd aaa rrm kki oorfor(int i=1;i<=c;i++)//先输出最前面那个数,输出的行数有和输入的列数一样多 { for(int j=r;j>=1;j--)//先输出最后那个数,输出的列数有和输入的行数一样多 { cout<<m[j][i];//输出答案 } cout<<endl;//下一行 }k=135时
damir marko darko d a m r a d k r a o k m o i rfor(int i=1;i<=r+c-1;i++)//输出有行加列减一行 { for(int a=1;a<=abs(c-i);a++)//列减去输出的行数的绝对值是这行前面的空格数 { cout<<' ';//输出空格 } for(int a=r;a>=1;a--)//因为先输出行坐标大的所以从后往前 { for(int b=1;b<=c;b++)//从前往后 { if(r-a+b==i)//如果符合输出要求 { cout<<m[a][b]<<' ';//输出答案 } } } cout<<endl;//下一行 }k=180时
damir marko darko okrad okram rimadfor(int a=r;a>=1;a--)//从最后一行往前输出 { for(int b=c;b>=1;b--)//从最后一列往前输出 { cout<<m[a][b];//输出答案 } cout<<endl;//下一行 }k=225时
damir marko darko o o k r k r i r a m a d a m dfor(int i=1;i<=r+c-1;i++)//输出有长加宽减一行 { for(int a=1;a<=abs(r-i);a++)//长减去输出行数的绝对值是这行前面的空格数 { cout<<' ';//输出空格 } for(int a=1;a<=r;a++)//因为先输出行坐标小的所以从前往后 { for(int b=1;b<=c;b++)//从前往后 { if(r-a+c-b==i-1)//如果符合要求 { cout<<m[a][b]<<' ';//输出答案 } } } cout<<endl;//下一行 }k=270时
damir marko darko roo ikk mrr aaa dmdfor(int a=c;a>=1;a--)//先输出最后面那个数,输出的行数有和输入的列数一样多 { for(int b=1;b<=r;b++)//先输出最前面那个数,输出的列数有和输入的行数一样多 { cout<<m[b][a];//输出答案 } cout<<endl;//下一行 }k=315时
damir marko darko r i o m k o a r k d a r m a dfor(int i=1;i<=r+c-1;i++)//输出有行加列减一行 { for(int a=1;a<=abs(c-i);a++)//列减去输出的行数的绝对值是这行前面的空格数 { cout<<' ';//输出空格 } for(int a=1;a<=r;a++)//因为先输出行坐标小的所以从后往前 { for(int b=c;b>=1;b--)//从后往前 { if(a+c-b==i)//如果符合要求 { cout<<m[a][b]<<' ';//输出答案 } } } cout<<endl;//下一行 }代码:
#include <bits/stdc++.h>//头文件 using namespace std; int main()//主函数 { int r,c,k;//行列和度数 char m[11][11];//图形 cin>>r>>c;//输入行列 for(int i=1;i<=r;i++)//有r行输入 { for(int j=1;j<=c;j++)//有c列输入 { cin>>m[i][j];//输入图形 } } cin>>k;//输入度数 k%=360;//取余数,保证大于315的度数正确 if(k==0) { for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { cout<<m[i][j]; } cout<<endl; } } if(k==45) { for(int i=1;i<=r+c-1;i++) { for(int a=1;a<=abs(r-i);a++) { cout<<' '; } for(int a=r;a>=1;a--) { for(int b=c;b>=1;b--) { if(a+b==i+1) { cout<<m[a][b]<<' '; } } } cout<<endl; } } if(k==90) { for(int i=1;i<=c;i++) { for(int j=r;j>=1;j--) { cout<<m[j][i]; } cout<<endl; } } if(k==135) { for(int i=1;i<=r+c-1;i++) { for(int a=1;a<=abs(c-i);a++) { cout<<' '; } for(int a=r;a>=1;a--) { for(int b=1;b<=c;b++) { if(r-a+b==i) { cout<<m[a][b]<<' '; } } } cout<<endl; } } if(k==180) { for(int a=r;a>=1;a--) { for(int b=c;b>=1;b--) { cout<<m[a][b]; } cout<<endl; } } if(k==225) { for(int i=1;i<=r+c-1;i++) { for(int a=1;a<=abs(r-i);a++) { cout<<' '; } for(int a=1;a<=r;a++) { for(int b=1;b<=c;b++) { if(r-a+c-b==i-1) { cout<<m[a][b]<<' '; } } } cout<<endl; } } if(k==270) { for(int a=c;a>=1;a--) { for(int b=1;b<=r;b++) { cout<<m[b][a]; } cout<<endl; } } if(k==315) { for(int i=1;i<=r+c-1;i++) { for(int a=1;a<=abs(c-i);a++) { cout<<' '; } for(int a=1;a<=r;a++) { for(int b=c;b>=1;b--) { if(a+c-b==i) { cout<<m[a][b]<<' '; } } } cout<<endl; } } return 0;//别忘了 }感谢:
感谢管理审核!
感谢大家观赏!
- 1
信息
- ID
- 5467
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者