poj2039---写出c++reverse函数,且且依次输出每一行的第一个、第二个.....

时间:2022-09-18 11:23:48
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char *p1,char *p2,int col)
{
    int i;
    p2--;
    for(i=0;i<col/2;i++)
    {
        char t;
        t = *p1;
        *p1 = *p2;
        *p2 = t;
        p1++;
        p2--;
    }
}
int main()
{
    int col,row,i,j;
    char arr[201];
    while(scanf("%d",&col)!=EOF)
    {
        if(col==0)
            break;
        scanf("%s",arr);
        row=strlen(arr)/col;
        for(i=1;i<row;i=i+2)
        {
            reverse(arr+i*col,arr+(i+1)*col,col);
        }
        for(j=0;j<col;j++)
        {
            for(i=0;i<row;i++)
            {
                printf("%c",arr[i*col+j]);
            }
        }
        printf("\n");
    }
    return 0;
}