用c语言生成一个3行3列的二维数组,交换两条对角线的值并输出
时间: 2024-05-05 12:18:19 浏览: 35
好的,可以使用以下代码来生成一个3行3列的二维数组,并交换两条对角线的值:
```c
#include <stdio.h>
int main() {
int arr[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
// 交换两条对角线的值
for (int i=0; i<3; i++) {
int tmp = arr[i][i];
arr[i][i] = arr[i][2-i];
arr[i][2-i] = tmp;
}
// 输出结果
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这段代码可以将原来的数组:
1 2 3
4 5 6
7 8 9
变为:
3 2 1
4 5 6
9 8 7
希望这个回答能够对您有帮助。
相关问题
生成C语言五子棋源代码
编写完整的五子棋游戏源代码是一个复杂的任务,因为涉及到图形用户界面、算法(如搜索树或人工智能)以及数据结构。下面提供一个简化的C语言基础版的控制台五子棋游戏的核心部分示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct {
int row;
int col;
} Point;
char board[15][15]; // 15x15的二维数组表示棋盘
bool check_win(Point p) {
// 检查一行、一列和两条对角线是否有五个连续的黑或白点
return ...;
}
void make_move(int player, Point *move) {
board[move->row][move->col] = (player == 1 ? 'B' : 'W'); // 黑白棋子标记
... // 更新棋局状态并检查是否获胜
}
int main() {
int player = 1; // 初始玩家
Point move;
while (true) {
printf("Player %d's turn. Enter row and column (0-14): ", player);
scanf("%d%d", &move.row, &move.col);
make_move(player, &move);
if (check_win(&move)) {
printf("Player %d wins!\n", player);
break;
}
player = 3 - player; // 切换玩家
}
return 0;
}
```
这个示例仅展示了基本的玩法和数据结构,实际的完整游戏需要更复杂的逻辑,例如交换玩家、处理边界条件、循环结束条件等,并可能还包括图形化显示和AI对手的功能。
阅读全文