赞
踩
三角形的输入输出问题,我想到了二维数组,在POJ上练习题目的过程中,发现北大对二维数组的考察也是蛮多的,感觉也很有趣,于是学习了几个题目,因为写不出代码,也只能说学习了,简单做一下整理,如果以后有机会,会完善这部分= =
- #include <iostream>
- #include <string>
-
- using namespace std;
-
- const int M = 20;
- const int N = 100;
- char A[N][M], B[N][M];
-
- int main()
- {
- string s;
- int m, n, t=0, r=-1;
- cin >> m;
- cin >> s;
- while (t < s.length())//一次读入字符到二维数组
- {
- r++;
- for (int j=0; j<m; j++)
- A[r][j] = s[t++];
- if (t < s.length())
- {
- r++;
- for (int j=m-1; j>=0; j--)
- A[r][j] = s[t++];
- }
- }
- n = s.length() / m; //行数
- for (int j=0; j<m; j++)//从上到下逐行输出字符
- {
- for (int i=0; i<n; i++)
- {
- cout << A[i][j];
- }
- }
- cout << endl;
-
- return 0;
- }
- #include <stdio.h>
- #include <stdlib.h>
- #include <algorithm>
- #include <iostream>
- #include <string.h>
- #include <queue>
- #include <vector>
- using namespace std;
-
- int main()
- {
- char str[2200];
- char ma[40][42];
- char map[42][42];
- int n;
- scanf("%d",&n);
- //getchar();
- cin>>str;
- //scanf("%s",str);
- int len=strlen(str);
- memset(map,'\0',sizeof(map));
- int k=0;
- int m=len/n;
- for(int i=0; i<m; i++)
- {
- for(int j=0; j<n; j++)
- {
- ma[i][j]=str[k++];
- }
- }
- for(int i=0; i<m; i++)
- {
- int p=0;
- if(i%2==1)
- {
- for(int j=n-1; j>=0; j--)
- {
- map[i][p++]=ma[i][j];
- }
- }
- else
- {
- for(int j=n-1; j>=0; j--)
- {
- map[i][j]=ma[i][j];
- }
- }
- }
-
- for(int j=0; j<n; j++)
- {
- for(int i=0; i<m; i++)
- {
- printf("%c",map[i][j]);
- }
- // printf("\n");
- }
- printf("\n");
- return 0;
- }
- #include <iostream>
- #include <cstdio>
- #include <cmath>
- #include <cstring>
- #define exp 1e-6
- #define pi acos(-1.0)
- using namespace std;
-
- int main()
- {
- int n;
- int ma[40][40];
- while(~scanf("%d",&n))
- {
- memset(ma,0,sizeof(ma));
- int m=2*n-1;
- int sum=1;
- int cnt=m*m;
- int i=1,j=n;
- while(sum<=cnt)
- {
- ma[i][j]=sum++;
- //printf("%d %d %d\n",i,j,ma[i][j]);
- if(i==1&&j<m)
- {
- i=m;
- j++;
- }
- else if(j==m&&i>1)
- {
- i--;
- j=1;
- }
- else if(i==1&&j==m||ma[i-1][j+1]!=0)
- {
- i++;
- }
- else
- {
- i--;
- j++;
- }
- //ma[i][j]=sum++;
-
- //printf()
- }
- for(int x=1;x<=m; x++)
- {
- for(int y=1; y<m; y++)
- {
- printf("%d ",ma[x][y]);
- }
- printf("%d\n",ma[x][m]);
- }
- }
- return 0;
- }
- #include<iostream>
- #include<algorithm>
- #include<stdio.h>
- #include<string.h>
- #include<math.h>
- #include<queue>
- #include<set>
- #include<map>
- #define LL long long
- #define PI acos(-1)
- #define exp 1e-9
- #define INF 0x7ffffff;
- using namespace std;
-
- int a[10][10];
- int n;
- int prin(int e)//c
- {
- for(int i=1; i<=e; i++) {
- for(int j=1; j<=e; j++)
- cout<<a[i][j]<<' ';
- cout<<endl;
- }
- return 0;
- }
- int main()
- {
- cin>>n;
- int x=1,i=1,j=1,m=1;
- while(m<=n) {
- a[i][j]=x;
- if(j<n) j++;
- else if(j==n) i++;
- x++;
- while(i<n&&j>1) {
- a[i][j]=x;
- i++;
- j--;
- x++;
- }
- a[i][j]=x;
- if(i<n) i++;
- else if(i==n) j++;
- x++;
- while(i>1&&j<n) {
- a[i][j]=x;
- i--;
- j++;
- x++;
- }
- m++;
- }
- prin(n);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。