2016计算机学科夏令营上机考试C:反反复复(字符串处理)

2016计算机学科夏令营上机考试C:反反复复(字符串处理)_第1张图片
2016计算机学科夏令营上机考试C:反反复复(字符串处理)_第2张图片

思路分析

本题是基础的字符串处理问题,利用二维数组进行存储,再遍历输出即可。
但要注意的是,二维数组进行存储时要 “S”型存储,要看清题目要求再做。

代码

#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 210;
char str[maxn];
char map[maxn][25];

int main()
{
    freopen("input.txt", "r", stdin);
    int col;
    scanf("%d", &col); // 列
    scanf("%s", str);
    int len = strlen(str);
    int row = len / col; // 行
    int num = 0; // 字符记录数量
    for(int i=0; i<row; i++)
    {
        if(i%2 == 0)
        {
            for(int j=0; j<col; j++)
            {
                map[i][j] = str[num++];
            }
        }
        else 
        {
            for(int j=col-1; j>=0; j--)
            {
                map[i][j] = str[num++];
            }
        }
    }
    for(int j=0; j<col; j++)
    {
        for(int i=0; i<row; i++)
        {
            printf("%c", map[i][j]);
        }
    }
    fclose(stdin);

    return 0;
}

你可能感兴趣的:(机试)