(C语言)数组2
1.求数组的最大值
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int max = a[0];
for (int i = 1; i < 10; i++)
{
if (max < a[i])
max = a[i];
}
printf("%d", max);
2.数组逆置
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;
int j = sizeof(a) / sizeof(a[0]) - 1;
int tmp = 0;
while (i<j)
{
//前后交换
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
//移动位置
i++;
j--;
}
3.冒泡排序
//冒泡排序:相邻两个元素比较,前面的比后面的大,两元素交换
//n个元素,一共比较n-1轮,每轮少一次比较,第一轮比较n-1次
int a[5] = { 2,5,6,3,-1 };
int n = sizeof(a) / sizeof(a[0]);
for (int i = 0; i < n - 1; i++)//比较轮数
{
//因为每次比较的次数都要减1,刚好i每次加1,所以每一轮比较的次数是n-1-i
for (int j = 0; j < n - 1 - i; j++)//每一轮需要比较的次数
{
if (a[j] > a[j + 1])//如果前面的元素比后面的元素大,则交换位置
{
int tmp = a[j + 1];
a[j + 1] = a[j];
a[j] = tmp;
}
}
}
for (int i = 0; i < n; i++)
{
printf("%d", a[i]);
}
printf("\n");