看板 b99902HW 關於我們 聯絡資訊
以下是我metal strength作業的程式碼 #include<stdio.h> main() { int row; int column; int judge; int i,j,k; int m,n; int a; int x[25],y[25]; int pattern[5][5]; double s[300][300]; scanf("%d%d",&row,&column); // 輸入行列數 for ( i=0; i<row; i++ ) for ( j=0; j<column; j++ ) scanf("%lf",&s[i][j]); // 輸入strength scanf("%d",&k); // 輸入pattern大小 for ( i=0; i<k; i++ ) for ( j=0; j<k; j++ ) scanf("%d",&pattern[i][j]); // 輸入pattern for ( i=0; i<k; i++ ) for ( j=0; j<k; j++ ){ x[pattern[i][j]]=i; // pattern的行 y[pattern[i][j]]=j; // pattern的列 } for ( m=0; m<(row-k+1); m++ ) for ( n=0; n<(column-k+1); n++ ){ for ( a=0; a<k*k; a++ ){ if ( s[m+x[a]][n+y[a]] < s[m+x[a+1]][n+y[a+1]] ) judge=1; // 0跟1比、1跟2比... else judge=0; break; } // 定pattern左上角為(m,n) if ( judge=1 ){ printf("%d\n",m+(k-1)/2); printf("%d\n",n+(k-1)/2); } } } 這個碼怎麼弄都是兩分 我一直找不出錯在哪@@ 請強者幫忙 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.239.58
didiwu:a要小於(k^2-1)喔~or你的判斷會0~XD 10/08 16:35
didiwu:你似乎就是微甲坐我後方的同學吧XD&我不是強者…科科 10/08 16:36
didiwu:if(judge == 1)中你少打一個等號說~ 10/08 16:40
didiwu:最後(?),k=1有點特別,你的檢查機制有一定的機率出錯喔~ 10/08 16:44
absent0918:怎麼還是兩分@@ 10/08 17:34
didiwu:如果你搞定k=1了的話,那就剩你的else沒括XDD 10/08 17:55
absent0918:謝謝 我終於10分了 好感動= = 10/08 18:22
arthur104:我想請問一下 是array的區塊剛好符合k*k才會比嗎? 10/10 17:26