NOI / 1.8 同行列对角线的格子 最简单的思维AC 适用和我一样的低智力儿童
描述
输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。
当n=4,i=2,j=3时,输出的结果是:
(2,1) (2,2) (2,3) (2,4) 同一行上格子的位置
(1,3) (2,3) (3,3) (4,3) 同一列上格子的位置
(1,2) (2,3) (3,4) 左上到右下对角线上的格子的位置
(4,1) (3,2) (2,3) (1,4) 左下到右上对角线上的格子的位置
输入
一行,三个自然数N,i,j,相邻两个数之间用单个空格隔开。1 <= N <= 10。
输出
四行:
第一行:从左到右输出同一行格子位置;
第二行:从上到下输出同一列格子位置;
第三行:从左上到右下输出同一对角线格子位置;
第四行:从左下到右上输出同一对角线格子位置。
其中每个格子位置用如下格式输出:(x,y),x为行号,y为列号,采用英文标点,中间无空格。
相邻两个格子位置之间用单个空格隔开。
样例输入
4 2 3
样例输出
(2,1) (2,2) (2,3) (2,4) (1,3) (2,3) (3,3) (4,3) (1,2) (2,3) (3,4) (4,1) (3,2) (2,3) (1,4)
代码如下:
#includeint a[100][100]; int main() {int i, j, n,t,y;scanf("%d %d %d", &n, &i, &j);for (t = 1; t <= n; t++){printf("(%d,%d) ", i, t);}printf("\n");for (t = 1; t <= n; t++){printf("(%d,%d) ", t, j); }printf("\n");//同行同列简单掠过for (t = i, y = j; t >= 1 && y >= 1; t--, y--){ }t = t + 1; y = y + 1;//碰壁计数后循环数操作要撤销一次for (t, y; t <= n && y <= n; t++, y++)printf("(%d,%d) ",t,y);//碰壁输出printf("\n");//后面重复一次这一步for (t = i, y = j; t<=n && y >= 1; t++, y--){}t = t - 1; y = y + 1;for (t, y; t >= 1 && y <= n; t--, y++)printf("(%d,%d) ", t, y);}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
