数组的打印:对于数组的打印我们大多要用到循环。
void PrintfArr(int ar[], int n) { for (int i = 0; i < n; ++i) { printf("%d ", ar[i]); } } void main() { int ar[] = { 1,3,3,4,6,7,8 }; int n = sizeof(ar) / sizeof(ar[0]); PrintfArr(ar, n); }
数组查找(找数组元素)
int FindAr(int ar[], int n, int key)
{
for (int i = 0; i < n; ++i)
{
if (ar[i] == key)
return 1;
}
return -1;
}
int main()
{
int ar[] = { 1,23,4,5,6,7,8,3,44,2,34,};
int n = sizeof(ar) / sizeof(ar[0]);
int key = 44;
int r = FindAr(ar, n, key);
printf("r=%d", r);
}
数组查找(找数组最大数)
int FindMaxAr(int ar[], int n)
{
int max = ar[0];
for (int i = 1; i < n; ++i)
{
if (ar[i] > max)
{
max = ar[i];
}
}
return max;
}
int main()
{
int ar[] = { 1,23,4,5,6,7,8,3,44,2,34, };
int n = sizeof(ar) / sizeof(ar[0]);
int max = FindMaxAr(ar, n);
printf("%d ", max);
}
数组查找(找数组第二大的元素)
int FindSeconMaxAr(int ar[], int n)
{
int max = ar[0] > ar[1] ? ar[0] : ar[1];
int smax = ar[0] > ar[1] ? ar[1] : ar[0];
for (int i = 2; i < n; ++i)
{
if (ar[i] > max)
{
smax = max;
max = ar[i];
}
else if (ar[i] > smax)
{
smax = ar[i];
}
}
return smax;
}
int main()
{
int ar[] = { 1,23,4,5,6,7,8,3,44,2,34, };
int n = sizeof(ar) / sizeof(ar[0]);
int smax = FindSeconMaxAr(ar, n);
printf("smax=%d ", smax);
}
数组排序(冒泡排序)
//将数组中的元素从小到大排//冒泡排序
void Swap(int a[], int n)
{
for (int i = 0; i < n-1; ++i)
{
for (int j = 0; j < n - 1 - i; ++j)
{
if (a[j] > a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j+ 1] = temp;
}
}
}
}
int main()
{
int a[] = {1,23,4,5,6,7,8,3,44,2,34};
int n = sizeof(a) / sizeof(a[0]);
Swap(a, n);
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
}
数组逆置:对数组进行倒置
//对数组中的元素进行逆置
void ReverseArray(int a[], int n) //逆置
{
int left = 0;
int right = n-1;
while (left < right)
{
int temp = a[left];
a[left] = a[right];
a[right] = temp;
left++;
right--;
}
}
int main()
{
int a[] = { 1,23,4,5,6,7,8,3,44,2,34 };
int n = sizeof(a) / sizeof(a[0]);
ReverseArray(a, n);
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
}