C编程练习-函数、数组应用

实现一个函数,找出数组中的最大值
实现一个函数,对数组进行排序
实现一个函数,查找数组中是否存在某个值,如果存在返回该数值在数组中的下标

 

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

//找最大值

find_max(int arr[],int len)
{
  int max = arr[0];
  for(int i=0; i<len; i++)
  {
    if(arr[i] > max)
    max = arr[i];
  }
  return max;
}

void sort_arr(int arr[],int len) //排序
{
  for(int i=0; i<len-1; i++)
  {
    for(int j=i+1; j<len; j++)
    {
      if(arr[i] > arr[j])
      {
        int temp = arr[i];
        arr[i]=arr[j];
        arr[j]=temp;
      }
    }
  }
}

int find_half(int arr[],int len,int num) //折半查找(前提:数组有序)
{
  int l=0,r=len-1;
  while(l<=r)
  {
    if(arr[(l+r)/2] == num)
    return (l+r)/2;
    if(arr[(l+r)/2] > num)
    l=(l+r)/2+1;
    if(arr[(l+r)/2] < num)
    r=(l+r)/2-1;
  }
  return -1;
}

int main(int argc,const char* argv[])
{
  srand(time(NULL));
  int arr[10]={};
  for(int i=0; i<10; i++)
  {
    arr[i] = rand()%100;
    printf("%d ",arr[i]);
  }
  printf("\nMAX=%d\n",find_max(arr,10));
  sort_arr(arr,10);
  for(int i=0; i<10; i++)
  {
    printf("%d ",arr[i]);
  }
  printf("\n");
  printf("index=%d \n",find_half(arr,10,42));

}

 

posted @ 2023-07-27 16:44  冲他丫的  阅读(37)  评论(0)    收藏  举报