#23839: 解答.c


liu76214@gmail.com (Andrew liu)

學校 : 新竹市立建功高級中學
編號 : 92407
來源 : [111.243.122.123]
最後登入時間 :
2021-08-15 15:26:39
e267. 11192 - Group Reverse -- UVA | From: [163.22.18.105] | 發表日期 : 2020-12-26 11:10

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main()

{

    char group[1000];

    long int len,d,n,i,z;

    while(scanf("%ld",&n)!=EOF && n!=0)

    /*輸入完數字之後,你會按下enter,但是這個enter所產生的\n並沒有被紀錄到你的變數當中,而是被放到記憶體中暫存*/

    {

        getchar();/*所以,我們需要getchar(),來清除掉這個討厭的\n*/

        gets(group);/*如果沒有getchar(),gets會先把記憶體有的東西先拿來讀取,也就是剛剛scanf留下來的\n。這樣一來,gets()就等於是只收到了\n後就結束了@@*/

        len = strlen(group);

        d = len / n;

        for(i=1; i<=n; i++)  /*1 ~ total groups*/

        {

            z = i * d;

            long int j;

            for(j = z - 1; j >= z - d; j--)/*think about this! */

            {

                printf("%c",group[j]);/*print the charactor out one by one*/

            }

        }

        printf("\n");

    }

    return 0;

}

 
ZeroJudge Forum