C程序一维数组最全的12中应用[FOR 初学者]
2017-12-05 12:45
459 查看
一维数组最常见的应用:
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]);
}
}
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 初学者]
- 菜鸟QiFang学数据结构系列(一):一维数组的高级应用--一个可容纳超多位数的求N!的程序!
- 编写一个程序,自定义以为数组,删除一维数组中所有相同的数,使之只剩一个。数组中的数按由小到大顺序排列,并显示运行所用时间。
- shell for循环与数组应用介绍
- Leetcode中一维数组与应用II
- Windows平台下GCC编程之从键盘输入10名学生的C语言成绩存入一维数组内,编写程序计算10名学生的最高分、平均分和及格人数
- Android应用开发揭秘的第25个程序12_1_opengl修改版和高仿版的源码注释
- Leetcode中一维数组与应用I
- EA&UML日拱一卒-0基础学习微信小程序(12)-ECMAScript5数组操作方法
- 用c#窗体应用游戏程序导入图片资源及用数组存储
- 【C语言】12-指向一维数组元素的指针
- 微信应用(小程序)开发最全整理
- 程序运行时提示输入若干个数并利用类Scanner接收这些数值并存入一维数组。
- 初学者的练习:程序二(数组快速复制)
- 通过一个气象分析程序来掌握二维数组以及多维数组的应用
- 数组的应用以及建立临时容器存储程序运行产生的数据-作者:逝秋
- Asp.Net MVC Html.TextBoxFor日期格式化出错“模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式” 解决办法
- 输出无名称的空值数组---精通android、IOS App应用服务程序开发
- Android应用开发揭秘的第29个程序12_5_Gfopengllw修改版和高仿版的源码注释
- 092day(Java循环和数组程序练习,for-each循环)