题目不难,但是测试用例中存在一组"特殊输入",由于我写的代码开始是用 if(t=='r')...else() 来判断行变换和列变换,因此提交后有一组测试没通过,看了没通过的数据恍然大悟,判断改成 if(t=='r')...if(t=='c') 再次提交就ac了。特殊输入如下截图:
最终通过代码:
#include<stdio.h> int main(){ int n,m,a[10][10],k,p,q,i,j,s; char t; scanf("%d %d",&n,&m); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&a[i][j]); scanf("%d",&k); for(s=0;s<k;s++){ scanf(" %c %d %d",&t,&p,&q); if(t=='r') for(j=0;j<m;j++){ a[p-1][j] += a[q-1][j]; a[q-1][j] = a[p-1][j]-a[q-1][j]; a[p-1][j] -= a[q-1][j]; } if(t=='c') for(i=0;i<n;i++){ a[i][p-1] += a[i][q-1]; a[i][q-1] = a[i][p-1]-a[i][q-1]; a[i][p-1] -= a[i][q-1]; } } for(i=0;i<n;i++){ for(j=0;j<m;j++) printf("%d ",a[i][j]); printf("\n"); } }