首页 > 其他分享 >数组

数组

时间:2024-08-16 09:18:35浏览次数:12  
标签:10 arr int len ++ 数组 printf

数组是一个能存储多个同种类型数据的容器

//数组作为参数传递:传递时传递的仅仅是存放首地址的变量,传递时注意将数组长度一同传递

//索引越界:索引从0~length - 1

#include <stdio.h>

void getArr(int arr[],int len);

int main(){

int arr1[] = {1,2,3,4,5};

int len = sizeof(arr1) / sizeof(int);

printf("%zu\n",sizeof(arr1));//存放的是整个数组

getArr(arr1,len);

}

void getArr(int arr[],int len){

int i = 0;

printf("%zu\n",sizeof(arr));//只传过来存放首地址的变量

for(i = 0;i < len;i++){

printf("%d ",arr[i]);

}

}

//数组算法题

//1、求最值

#include <stdio.h>

void MaxMin(int arr[],int len);

int main(){

//打印最值

int arr[5];

int i,len = sizeof(arr) / sizeof(int);

printf("Input number:");

for(i = 0;i < 5;i++){

scanf("%d",&arr[i]);

}

MaxMin(arr,len);

}

void MaxMin(int arr[],int len){

int max,min,i = 0;

max = min = arr[0];

while(i < len){

if(arr[i] > max){

max = arr[i];

}

if(arr[i] < min){

min = arr[i];

}

i++;

}

printf("max = %d,min = %d",max,min);

}

//2、遍历求和1.0

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void RanArray(int arr[],int len);

void SumArray(int arr[],int len);

int main(){

//遍历数组求和

int arr[10] = {0},i;

int len = sizeof(arr) / sizeof(int);

RanArray(arr,len);

for(i = 0;i < len;i++){

printf("%d ",arr[i]);

}

SumArray(arr,len);

}

void RanArray(int arr[],int len){

//数组初始化,生成10个10~100的随机数

//传入的本就是地址,是直接修改地址中存储的数据,不用返回值

int i;

srand(time(NULL));

for(i = 0;i < len;i++){

arr[i] = rand() % 91 + 10;

}

}

void SumArray(int arr[],int len){

//求和

int sum = 0,i = 0;

while(i < len){

sum += arr[i];

i++;

}

printf("Sum of array: %d\n", sum);

}

//遍历求和2.0

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void RanArray(int arr[],int len);

int SumArray(int arr[],int len);

float AverArray(int arr[],int len);

int CountArray(int arr[],int len);

int main(){

//遍历数组求和

int arr[10] = {0},i,sum,count = 0;

int len = sizeof(arr) / sizeof(int);

float average = 0;

RanArray(arr,len);

for(i = 0;i < len;i++){

printf("%d ",arr[i]);

}

sum = SumArray(arr,len);

printf("\nSum of array: %d\n", sum);

average = AverArray(arr,len);

printf("Average of array:%0.2f\n",average);

count = CountArray(arr,len);

printf("%d个\n",count);

}

void RanArray(int arr[],int len){

//数组初始化,生成10个10~100的随机数

//传入的本就是地址,是直接修改地址中存储的数据,不用返回值

int i;

srand(time(NULL));

for(i = 0;i < len;i++){

arr[i] = rand() % 91 + 10;

}

}

int SumArray(int arr[],int len){

//计算平均值

int sum = 0,i = 0;

while(i < len){

sum += arr[i];

i++;

}

return sum;

}

float AverArray(int arr[],int len){

return (float)SumArray(arr,len) / len;

}

int CountArray(int arr[],int len){

//统计比平均值小的个数

int count = 0,i;

for(i = 0;i < len;i++){

if(arr[i] < AverArray(arr,len)){

count++;

}

}

return count;

}

//4、翻转遍历数组

#include <stdio.h>

int main(){

//遍历翻转数组

int arr[11] = {1,2,3,4,5,6,7,8,9,10,11};

int i,j,temp = 0;

for(i = 0,j = 10;i <= j;i++){

printf("%d\t",arr[i]);

}

printf("\n");

for(i = 0,j = 10;i < j;i++,j--){

temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

for(i = 0,j = 10;i <= j;i++){

printf("%d\t",arr[i]);

}

}

//5、乱序数组:

//方法1:

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

int main(){

//随机打乱数组

int arr[10] = {10};

int len = sizeof(arr) / sizeof(int);

//printf("%d",len);

int i = 0;

while(i < len){

printf("请输入第%d个数据:",i + 1);

scanf("%d",&arr[i]);

i++;

}

i = 0;

printf("乱序前:");

while(i < len){

printf("%d\t",arr[i]);

i++;

}

srand(time(NULL));

int rand1,rand2,temp = 0;

i = 0;

while(i < len){

rand1 = rand() % 10;

rand2 = rand() % 10;

temp = arr[rand1];

arr[rand1] = arr[rand2];

arr[rand2] = temp;

i++;

}

i = 0;

printf("\n乱序后:");

while(i < len){

printf("%d\t",arr[i]);

i++;

}

}

//方法2:

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

int main(){

int arr[10] = {10};

int len = sizeof(arr) / sizeof(int);

int i = 0;

while(i < len){

printf("请输入第%d个数据:",i + 1);

scanf("%d",&arr[i]);

i++;

}

printf("乱序前:");

i = 0;

while(i < len){

printf("%d\t",arr[i]);

i++;

}

for(i = 0;i < len;i++){

int temp,rd = rand() % 10;

srand(time(NULL));

temp = arr[rd];

arr[rd] = arr[i];

arr[i] = temp;

}

printf("\n乱序后:");

i = 0;

while(i < len){

printf("%d\t",arr[i]);

i++;

}

}

标签:10,arr,int,len,++,数组,printf
From: https://www.cnblogs.com/izxw/p/18362254

相关文章

  • 遍历数组对象
    前提条件:数组对象中的id唯一1consttree=[2{id:1},3{id:2,4children:[5{id:3,6children:[7{id:4,8children:[9{i......
  • C语言-使用数组法,指针法实现将一个5X5的矩阵中最大的元素放在中心,四个角分别放四个最
    1.题目要求:将一个5X5的矩阵中最大的元素放在中心·,四个角分别放四个最小的元素(顺序为从左到右,从上到下,从小到大存放),写一函数实现之。2.数组法实现#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>//一、数组法实现intmain(){ intarr[5][5]={ {1,2,3,4,5},......
  • 【代码随想录】一、数组:6.前缀和
    二刷的时候发现更新了一些新的题目,尝试写了写后,发现我完全不会ACM输入输出模式。这两天在补前几天没背的八股,写得不够满意(几乎是完全誊代码了),先放着,后面再补充补充吧。1.题目:44.开发商购买土地#include<iostream>#include<vector>#include<climits>usingnamespacestd......
  • 【代码随想录】一、数组:4.滑动窗口
    1.题目1:209.长度最小的子数组1.1.解法1:暴力解法(已超时)使用两层循环,外层循环确定最小子数组开始的位置(i),内层循环确定最小子数组结束的位置(j)。在每次跳出内层循环时,sum应重置为0。当找到的子数组相加的和等于或大于目标值(target)时,算出此刻子数组的长度(j-i+1),并更新result的值......
  • 【代码随想录】一、数组:5.螺旋矩阵
    本题并不涉及到什么算法,就是模拟过程,但却十分考察对代码的掌控能力。1.题目1:59.螺旋矩阵II1.1.解法1:模拟本题的重点还是像之前的“704.二分查找”,坚持循环不变量原则,即在本题中遍历每条边时,坚持相同的原则。如下是一个示例,即n=5,我们考虑根据圈数和边数来进行遍历:由外圈到内......
  • KMP算法——理解 next 数组
    !注意!本文与《王道》,《严书》有所不同,字符串均从第0位开始,next数组没有添加常数1。博客为梳理思路所用,难免纰漏,希望不吝赐教。在字符串匹配中,设m为待匹配的主串S长度,n为找寻的模式串T长度。如:在主串S='ababc'中寻找模式串T='abc'则字符串匹配算法返回S中第......
  • JS 数组的用法
    一、常用的测试写法//array的写法varmyArray=["Apple","Orange","Banana"];//一、正常循环写法如下:varfruitFinal3=""for(vari=0;i<myArray.length;i++){fruitFinal3+=myArray[i]+""......
  • JS 对象与数组互相嵌套的复杂例子
    JS写法如下:constmyObj={name:"John",age:30,cars:[{name:"Ford",models:["Fiesta","Focus","Mustang"]},{name:"BMW",models:["32......
  • JavaScript实现数组与树结构的相互转换
    1、将树结构数据转换为数组(按照树结构自上而下的顺序转换)树结构:树结构数据样例:代码转换://将树结构数据转换为数组treeNodes为树结构形式的数据functiontreeToArray(treeNodes){letresult=[];//递归函数traverse,用于处理单个节点functiontraverse(node......
  • Springmvc -- 使用`@RequestParam`接收数组类型参数
    在SpringMVC中,处理数组类型的请求参数是一个常见需求,尤其是在处理表单数据或查询参数时。SpringMVC提供了多种方式来接收数组类型的请求参数,包括使用@RequestParam注解、直接绑定到方法参数、以及使用@ModelAttribute注解。本文将深入探讨这些方式的用法、优缺点以及如何......