93c16edb5a
- 修正主README.md中的所有路径引用,使其与当前文件结构一致 - 更新翁凯C语言学习指南链接路径 - 更新五子棋AI项目文档链接路径 - 更新数据结构学习文档链接路径 - 修正编译说明和学习模块使用指南中的目录路径 - 改进五子棋README.md的编译运行说明,增加Windows和Linux/macOS的分平台指导 - 确保所有文档链接和路径引用都能正确工作
105 lines
2.1 KiB
C
105 lines
2.1 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
#include <math.h>
|
|
#include <stdbool.h>
|
|
|
|
// !数组的集成初始化
|
|
/*
|
|
例如:int a[10]={1,2,3,4,5,6,7,8,9,10};
|
|
直接用大括号给出数组的所有元素值的初始值
|
|
不需要给出数组的长度(大小),编译器会自动计算
|
|
*/
|
|
|
|
// !集成初始化的定位
|
|
/*
|
|
用[n]在初始化数据中给出定位
|
|
没有定位的数据接在前面的位置后面
|
|
其他位置的值补零 也可以不给出数组大小,让编译器算
|
|
特别适合初始数据稀疏的数组
|
|
例如:int a[10]={[1]=1,4, [5]=6};他的数组为{0,1,4,0,0,6,0,0,0,0}
|
|
*/
|
|
|
|
// !数组的大小
|
|
/*
|
|
sizeof(a)给出数组a所占据的内容的大小,单位是字节
|
|
sizeof(a)/sizeof(a[0])给出数组a的大小
|
|
*/
|
|
|
|
// !数组的赋值
|
|
/*
|
|
数组赋值有两种方式
|
|
1.用赋值号直接赋值
|
|
2.用循环赋值
|
|
例如:
|
|
int a[10]={1,2,3,4,5,6,7,8,9,10};
|
|
int b[10];
|
|
for(int i=0;i<10;i++)
|
|
{
|
|
b[i]=a[i];
|
|
}
|
|
数组不能用来赋另外一个数组的值
|
|
*/
|
|
|
|
// !例题
|
|
/*
|
|
找出key在数组a中的位置
|
|
@param key 要寻找的数字
|
|
@param a 要寻找的数组
|
|
@param length 数组a的长度
|
|
@return 如果找到,返回其在a中的位置;如果找不到则返回-1
|
|
*/
|
|
|
|
int search(int x, int a[], int len);
|
|
|
|
int main()
|
|
{
|
|
int a[] = {2, 4, 6, 7, 1, 3, 5, 9, 11, 13, 23, 14, 32}; //{[1]=2,4, [5]=6};
|
|
{
|
|
int i;
|
|
printf("%lu\n", sizeof(a));
|
|
printf("%lu\n", sizeof(a[0])); // sizeof(a[0])是数组中每个元素的大小,结果为4
|
|
|
|
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) // 相除得到了数组的单元个数,即sizeof(a)/sizeof(a[0])是数组的大小
|
|
{
|
|
printf("%d\t", a[i]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
int x;
|
|
int location;
|
|
printf("请输入要查找的数字:");
|
|
scanf("%d", &x);
|
|
location = search(x,a,sizeof(a)/sizeof(a[0]));
|
|
if (location!=-1)
|
|
{
|
|
printf("%d在%d个位置上\n", x, location);
|
|
}
|
|
else
|
|
{
|
|
printf("%d在数组中不存在\n", x);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
int search(int x, int a[], int len)
|
|
{
|
|
int ret = -1;
|
|
|
|
if (len==0)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
for (int i=0;i<len;i++)
|
|
{
|
|
if (x==a[i])
|
|
{
|
|
ret = i;
|
|
break;
|
|
}
|
|
}
|
|
return ret;
|
|
} |