制作地图,需要先了解二维数组
1.二维数组的输出
#include<stdio.h>
#define N 3
int main()
{
int s[N][N] = { 1,2,3,4,5,6,7,8,9 },i;
for (i = 0; i < N; i++)
{
for (int j = 0; j< N; j++)
{
printf("%d\t", s[i][j]);
}
printf("\n");
}
return 0;
}
2.二维数组主对角线元素求和
#include<stdio.h>
#define N 3
int main()
{
int s[N][N] = { 1,2,3,4,5,6,7,8,9 }, i,s1=0;
for (i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if (i == j)
s1 += s[i][j];
}
}
printf("%d", s1);
return 0;
}
3.数组转置
#include<stdio.h>
int main()
{
int a[2][3] = { 1,2,3,4,5,6 },b[3][2], i,j;
printf("转置前:\n");
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
printf("\n");
printf("转置后: \n");
for (i = 0; i <2 ; i++)
{
for (j=0;j<3 ;j++ )
{
b[j][i] = a[i][j];
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
printf("%d\t", b[i][j]);
}
printf("\n");
}
return 0;
}
4.求最大元素值的行标和列标
#include<stdio.h>
int main()
{
int s[3][4] = { 1,2,3,4,9,8,7,6,-10,10,-5,2 };
int max = s[0][0],H=0,L=0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (s[i][j] > max)
{
max = s[i][j];
H = i;
L = j;
}
}
}printf("max=%d\nH=%d\tL=%d\n",max,H,L);
return 0;
}
编写走迷宫代码前需要了解:
一、GetStdHandle(STD_OUTPUT_HANDLE)用于** 获取标准输出设备的句柄** ,通常在Windows操作系统中,这个设备是控制台窗口。使用GetStdHandle函数时,
需要包含windows.h头文件,并且在调用该函数时传入预定义的常量STD_OUTPUT_HANDLE作为参数。函数执行后会返回一个句柄(HANDLE类型),这个句柄代表了当前进程的标准输出设备,
即控制台窗口。通过这个句柄,可以对控制台窗口进行一系列的操作,如设置光标位置、改变文本颜色等。具体如下:
-
- *包含头文件 :在程序的开头包含windows.h头文件,以便使用GetStdHandle函数和相关的数据类型及常量。
-
- *获取句柄 :使用GetStdHandle函数并传入STD_OUTPUT_HANDLE作为参数,以获取标准输出设备的句柄。
-
- *使用句柄 :获取到句柄后,可以使用SetConsoleCursorPosition等其他Windows API函数来操作控制台窗口。例如,可以设置光标的位置,改变输出文本的颜色或格式等。
二、COORD是一个结构体,用于表示控制台中的一个坐标位置。
在Windows编程中,COORD结构体通过包含windows.h头文件来使用,它定义了控制台输出的位置。这个结构体包含两个成员:X和Y,分别代表光标在控制台窗口中的横纵坐标位置。
具体来说,可以通过以下步骤来设置和使用COORD结构体