C程序一维数组最全的12中应用[FOR 初学者]
来源:互联网 发布:上海java培训夜校 编辑:程序博客网 时间:2024/06/07 02:52
一维数组最常见的应用:
1.求数组中的最大值;
2.无数组中的最小值;
3.求数组中元素的累加和;
4,求数组中元素的平均值;
5.查询一个数是否在数组中包含;
6.检索某个数在数组中第一次出现的小标;
7.选择排序法;
8.冒泡排序法;
9.数组逆序;
10.产生一个指定长度和数据区间的没有重复值得数组(双色球);
11.使用二分法查找某个数在数组中的下标.
12.遍历数组;
//
// arrayApplication.h
// 一维数组的12种应用
//
// Created by 李旭杰 on 2016/11/14.
// Copyright © 2016年 李旭杰. All rights reserved.
//
#ifndef arrayApplication_h
#define arrayApplication_h
#include <stdio.h>
/**
求数组中元素的最大值
@param arr 指定数组
@param len 数组长度
@return 返回数组中的最大值
*/
int getMax(int arr[],int len);
/**
求数组中元素的最小值
@param arr 指定数组
@param len 数组长度
@return 返回数组中的最小值
*/
int getMin(int arr[],int len);
/**
求数组中元素的累加和
@param arr 指定数组
@param len 数组长度
@return 返回数组中元素的累加和
*/
int getSum(int arr[],int len);
/**
求数组中元素的平均值
@param arr 指定数组
@param len 数组长度
@return 返回数组中元素的平均值
*/
float getAvg(int arr[],int len);
/**
判断某个数是否包含指定的数
@param arr 指定数组
@param len 数组长度
@return 返回1代表包含,0代表不包含
*/
int isContaining(int arr[],int len, int keyNum);
/**
求某个数在数组中的下标
@param arr 指定数组
@param len 数组长度
@return 如果数组中包含这个数,返回元素在数组中的下标,反之则返回-1
*/
int indexIs(int arr[],int len, int keyNum);
/**
使用冒泡排序将数组中的元素进行由小到大排序
@param arr 指定数组
@param len 数组长度
*/
void bubbleSort(int arr[],int len);
/**
使用选择排序将数组中的元素进行由小到大排序
@param arr 指定数组
@param len 数组长度
*/
void selectSort(int arr[],int len);
/**
将数组元素逆序排列
@param arr 指定数组
@param len 数组长度
*/
void reversedSort(int arr[],int len);
/**
使用折半查找某个数
@param arr 指定数组
@param len 数组长度
@param keyNum 要查找的关键字
@return 返回要查找的这个数所在的数组下标
*/
int binarySearchKeyNum(int arr[],int len,int keyNum);
/**
创建一个指定范围内没有重复数值的数组
@param min 元素范围的最小值
@param max 元素范围的最大值
@param len 数组长度
@param arr 指定数组
*/
void no_repeatRandomNumber(int min, int max, int len, int arr[]);
/**
遍历数组
@param len 数组长度
@param arr 指定数组
*/
void bianLiArray(int len, int arr[]);
#endif /* arrayApplication_h */
//
// arrayApplication.c
// 一维数组的12种应用
//
// Created by 李旭杰 on 2016/11/14.
// Copyright © 2016年 李旭杰. All rights reserved.
//
#include "arrayApplication.h"
#include <stdlib.h>
/**
求数组中元素的最大值
@param arr 指定数组
@param len 数组长度
@return 返回数组中的最大值
*/
int getMax(int arr[],int len){
int max = INT32_MIN;
for (int i = 0; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
/**
求数组中元素的最小值
@param arr 指定数组
@param len 数组长度
@return 返回数组中的最小值
*/
int getMin(int arr[],int len){
int min = INT32_MAX;
for (int i = 0; i < len; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
/**
求数组中元素的累加和
@param arr 指定数组
@param len 数组长度
@return 返回数组中元素的累加和
*/
int getSum(int arr[],int len){
int sum = 0;
for (int i = 0; i < len; i++) {
sum += arr[i];
}
return sum;
}
/**
求数组中元素的平均值
@param arr 指定数组
@param len 数组长度
@return 返回数组中元素的平均值
*/
float getAvg(int arr[],int len){
int sum = getSum(arr, len);
return sum * 1.0f / len;
}
/**
判断某个数是否包含指定的数
@param arr 指定数组
@param len 数组长度
@return 返回1代表包含,0代表不包含
*/
int isContaining(int arr[],int len, int keyNum){
for (int i = 0; i < len; i++) {
if (arr[i] == keyNum) {
return 1;
}
}
return 0;
}
/**
求某个数在数组中的下标
@param arr 指定数组
@param len 数组长度
@return 如果数组中包含这个数,返回元素在数组中的下标,反之则返回-1
*/
int indexIs(int arr[],int len, int keyNum){
for (int i = 0; i < len; i++) {
if (arr[i] == keyNum) {
return i;
}
}
return -1;
}
/**
使用冒泡排序将数组中的元素进行由小到大排序
@param arr 指定数组
@param len 数组长度
*/
void bubbleSort(int arr[],int len){
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 -i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
/**
使用选择排序将数组中的元素进行由小到大排序
@param arr 指定数组
@param len 数组长度
*/
void selectSort(int arr[],int len){
for (int i = 0; i < len; 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;
}
}
}
}
/**
将数组元素逆序排列
@param arr 指定数组
@param len 数组长度
*/
void reversedSort(int arr[],int len){
for (int i = 0; i < len / 2; i++) {
int temp = arr[i];
arr[i] = arr[len - 1 - i];
arr[len - 1 - i] = temp;
}
}
/**
使用折半查找某个数
@param arr 指定数组
@param len 数组长度
@param keyNum 要查找的关键字
@return 返回要查找的这个数所在的数组下标 -1表示哟啊查找的数不在数组中
*/
int binarySearchKeyNum(int arr[],int len,int keyNum){
int low = 0;
int high = len - 1;
int mid = len / 2;
int index = -1;
while (low <= high) {
mid = (low + high) ;
if (arr[mid] > keyNum) {// 将在左边进行查找
high = mid - 1;
}else if (arr[mid] < keyNum){// 将在右边进行查找
low = mid + 1;
}else{
index = mid;
break;
}
}
return index;
}
/**
创建一个指定范围内没有重复数值的数组
@param min 元素范围的最小值
@param max 元素范围的最大值
@param len 数组长度
@param arr 指定数组
*/
void no_repeatRandomNumber(int min, int max, int len, int arr[]){
for (int i = 0; i < len;) {
int num = arc4random_uniform(max - min + 1) + min;
if (!isContaining(arr, len, num)) {
arr[i] = num;
i++;
}
}
}
/**
遍历数组
@param len 数组长度
@param arr 指定数组
*/
void bianLiArray(int len, int arr[]){
for (int i= 0; i < len; i++) {
printf("%d\t",arr[i]);
}
}
- C程序一维数组最全的12中应用[FOR 初学者]
- C程序一维数组最全的12中应用[FOR 初学者]
- c语言中指针,二维数组,一维数组,指针数组,二级指针,应用
- C语言中有关一维数组的一些运算
- c语言中关于一维数组的指针访问
- C语言基础 for循环遍历一维整型数组
- 简单的c程序----初学者推荐
- 最全的表格代码应用
- C语言中动态分配数组(一维)
- 微信应用(小程序)开发最全整理
- 最全的java面试题目一
- 最全的c++map的用法
- 最全的c++map的用法
- 打印一维数组的全排列组合,递归算法
- 用递归输出一维数组的全排列
- 最全的C/C++面试题解
- 最全的C语言试题总结
- 最全的C语言试题总结
- 对付虚伪的人,用这招!
- 有了永不抱怨的心态,成功就离你不…
- 32位与64位编程注意事项总结
- 八个幽默的感悟
- kubernetes证书配置相关
- C程序一维数组最全的12中应用[FOR 初学者]
- 姑娘,和一个好质量的男人恋爱吧,…
- 你的前途,不要被这14个职场小细节…
- 木桶理论已死,长板理论才是你2015…
- 如何打败理发店装逼洗剪吹小哥
- 你已经那么努力,为何依然成绩平平…
- 不是人家装逼,只是我们太LOW
- 敲醒你:为什么你的鸡血有效期短,…
- 给那些仍在混日子的人