求助!!! int a[10][10]= {0,1,0,1,0,0,0,0,0,0, 1,0,0,0,0,0,1,1,1,1, 0,0,0,0,1,1,0,0,0,0, 1,0,0,0,0,0,1,1,1,1, 0,0,1,0,0,0,0,0,0,0, 0,0,1,0,0,0,0,0,0,0, 0,1,0,1,0,0,0,0,0,0, 0,1,0,1,0,0,0,0,0,0, 0,1,0,1,0,0,0,0,0,1, 0,1,0,1,0,0,0,0,1,0}; int f[4]={1,3,2,8}; for(int i=0;i<4;i++) for(int j=i;j<4;j++) 便利在a中得到如下坐标 a[1][3],a[1][2],a[1][8],a[3][2],a[3][8],a[2][8] 原来为1则为1,原来为0则为0。其他均变为0。 也就是得到a数组中,只有a[1][8],a[3][8]为1。其余均为0的数组。 用c写。 大佬帮一下啊,谢谢。
7条回答 默认 最新
CSDN专家-三岁丫 2021-05-01 13:25关注int main() { int a[10][10]= {{0,1,0,1,0,0,0,0,0,0}, {1,0,0,0,0,0,1,1,1,1}, {0,0,0,0,1,1,0,0,0,0}, {1,0,0,0,0,0,1,1,1,1}, {0,0,1,0,0,0,0,0,0,0}, {0,0,1,0,0,0,0,0,0,0}, {0,1,0,1,0,0,0,0,0,0}, {0,1,0,1,0,0,0,0,0,0}, {0,1,0,1,0,0,0,0,0,1}, {0,1,0,1,0,0,0,0,1,0}}; int f[] = {1, 3, 2, 8}; int p = 4; for (int i = 0; i < 10; ++i) { for (int j = 0; j < 10; ++j) { int flag = 1; for (int k = 0; k < p; ++k) { for (int l = k + 1; l < p; ++l) { if (f[k] == i && f[l] == j) { flag = 0; break; } } if (!flag) break; } if (flag) a[i][j] = 0; printf("%d ", a[i][j]); } printf("\n"); } return 0; }不好意思,之前一直没有仔细看题。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用