#13429: 不知道為什麼最後一筆測資一直過不去QQ


mmd9192631770@gmail.com (恭喜發財AC拿來)

學校 : 高雄市立高雄女子高級中學
編號 : 75535
來源 : [118.161.177.123]
最後登入時間 :
2018-02-17 15:11:26
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [118.161.177.123] | 發表日期 : 2018-02-17 22:22

如題。。。不知道為什麼最後一筆測資一直過不去QQ

是不是有什麼特別條件

 

#include<stdio.h>
int r,c,m,i,j,v,a[10][10],b[10][10],x,y,l,temp;
int m1()
{
    x=r-1;
    for(i=x;i>=0;i--)
    {
        for(j=0;j<c;j++)
        {
            b[x-i][j]=a[i][j];
        }
    }
    for(i=0;i<r;i++)
    {
        for(j=0;j<c;j++)
        {
            a[i][j]=b[i][j];
        }
    }
    return 0;
}
int m2()
{
    temp=r;
    r=c;
    c=temp;
    x=c-1;
    for(i=0;i<r;i++)
    {
        for(j=0;j<c;j++)
        {
            b[i][j]=a[x][i];
            x--;
        }
        x=c-1;
    }
    for(i=0;i<r;i++)
    {
    for(j=0;j<c;j++)
        {
            a[i][j]=b[i][j];
        }
    }
    return 0;
}
int main()
{

    while(scanf("%d",&r)!=EOF)
    {
        scanf("%d%d",&c,&m);
        for(i=0;i<r;i++)
        {
            for(j=0;j<c;j++)
            {
                scanf("%d",&a[i][j]);
            }

        }
        x=r-1;
        y=c-1;
        while(m--)
        {
            scanf("%d",&v);
            if(v==1)
            {
                m1();
            }
            else if(v==0)
            {
                m2();
            }
        }
        printf("%d %d\n",r,c);
        for(i=0;i<r;i++)
        {
            for(j=0;j<c;j++)
            {
                printf("%d",a[i][j]);
                if(j!=(c-1))
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

 
#13432: Re:不知道為什麼最後一筆測資一直過不去QQ


mirkat.ee06@g2.nctu.edu.tw (炭烤海苔)

學校 : 不指定學校
編號 : 74539
來源 : [138.246.3.111]
最後登入時間 :
2023-11-22 18:43:09
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [124.8.72.64] | 發表日期 : 2018-02-18 00:46

如題。。。不知道為什麼最後一筆測資一直過不去QQ

是不是有什麼特別條件

 

#include
int r,c,m,i,j,v,a[10][10],b[10][10],x,y,l,temp;
int m1()
{
    略...
}
int m2()
{
    temp=r;
    r=c;
    c=temp;
    x=c-1;
    for(i=0;i<r;i++)
    {
        for(j=0;j<c;j++)
        {
            b[i][j]=a[x][i];
            x--;
        }
        x=c-1;
    }
    for(i=0;i<r;i++)
    {
    for(j=0;j<c;j++)
        {
            a[i][j]=b[i][j];
        }
    }
    return 0;
}
int main()
{

    略...
}

請注意題目敘述

我們可以對矩陣定義兩種操作如下:
  翻轉:即第一列與最後一列交換、第二列與倒數第二列交換、… 依此類推。
  旋轉:將矩陣以順時針方向轉 90 度。

給定 矩陣B 和一連串的操作,請算出原始的 矩陣A 。

而你的m2操作是順時針旋轉

------

額外小建議

1) 如果自訂function不需要回傳值的話,你可以宣告成void m1(...){...}和void m2(...)(...),這樣就不需要return任何東西(也就是不用寫return,反正你return的值也沒有作用)

2) 如果if或while或for等迴圈後只有一行,像是

for(j=0;j<c;j++)
        {
            a[i][j]=b[i][j];
        }

中括號{}可以省略,可以讓程式碼更漂亮喔~~

 

想當初我參加APCS大學程式設計先修檢測就是寫到這題呢呵呵

 
#14869: Re:不知道為什麼最後一筆測資一直過不去QQ


Aaaaaaaaaaaaa (羅傑)

學校 : 臺北市立大同高級中學
編號 : 69102
來源 : [111.235.208.242]
最後登入時間 :
2023-09-13 09:02:41
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [203.72.178.252] | 發表日期 : 2018-08-10 13:08

如題。。。不知道為什麼最後一筆測資一直過不去QQ

是不是有什麼特別條件

 

#include
int r,c,m,i,j,v,a[10][10],b[10][10],x,y,l,temp;
int m1()
{
    略...
}
int m2()
{
    temp=r;
    r=c;
    c=temp;
    x=c-1;
    for(i=0;i<r;i++)
    {
        for(j=0;j<c;j++)
        {
            b[i][j]=a[x][i];
            x--;
        }
        x=c-1;
    }
    for(i=0;i<r;i++)
    {
    for(j=0;j<c;j++)
        {
            a[i][j]=b[i][j];
        }
    }
    return 0;
}
int main()
{

    略...
}

請注意題目敘述

我們可以對矩陣定義兩種操作如下:
  翻轉:即第一列與最後一列交換、第二列與倒數第二列交換、… 依此類推。
  旋轉:將矩陣以順時針方向轉 90 度。

給定 矩陣B 和一連串的操作,請算出原始的 矩陣A 。

而你的m2操作是順時針旋轉

------

額外小建議

1) 如果自訂function不需要回傳值的話,你可以宣告成void m1(...){...}和void m2(...)(...),這樣就不需要return任何東西(也就是不用寫return,反正你return的值也沒有作用)

2) 如果if或while或for等迴圈後只有一行,像是

for(j=0;j<c;j++)
        {
            a[i][j]=b[i][j];
        }

中括號{}可以省略,可以讓程式碼更漂亮喔~~

 

想當初我參加APCS大學程式設計先修檢測就是寫到這題呢呵呵


中括號{}可以省略,可以讓程式碼更漂亮喔~~

 

{}是大括號吧?

 
ZeroJudge Forum