精华内容
下载资源
问答
  • C#获取一个数组中最大值、最小值、平均值

    万次阅读 多人点赞 2018-09-19 09:49:18
    C#获取一个数组中最大值、最小值、平均值 1.给出一个数组 int[] array = new int[] { 1,2,4,3,0,-1,34,545,2,34}; 2.数组Array自带方法 本身是直接可以调用Min(),Max(),Average()方法来求出 最小值、最大值...

    C#获取一个数组中的最大值、最小值、平均值

    1.给出一个数组

     int[] array = new int[] { 1,2,4,3,0,-1,34,545,2,34};

    2.数组Array自带方法

    本身是直接可以调用Min(),Max(),Average()方法来求出 最小值、最大值、平均值

    1             Console.WriteLine("--------------Array自身方法-----------------");
    2             Console.WriteLine("Min:{0}",array.Min());
    3             Console.WriteLine("Max:{0}", array.Max());
    4             Console.WriteLine("Average:{0}", array.Average());

    输出结果:

    1 --------------Array自身方法-----------------
    2 Min:-1
    3 Max:545
    4 Average:62.4

    3.编码实现

    最小值

            /// <summary>
            /// 最小值
            /// </summary>
            /// <param name="array"></param>
            /// <returns></returns>
            public static int Min(int[] array)
            {
                if (array == null) throw new Exception("数组空异常");
                int value = 0;
                bool hasValue = false;
                foreach (int x in array)
                {
                    if (hasValue)
                    {
                        if (x < value) value = x;
                    }
                    else
                    {
                        value = x;
                        hasValue = true;
                    }
                }
                if (hasValue) return value;
                throw new Exception("没找到");
            }

    最大值

            /// <summary>
            /// 最大值
            /// </summary>
            /// <param name="array"></param>
            /// <returns></returns>
            public static int Max(int[] array)
            {
                if (array == null) throw new Exception("数组空异常");
                int value = 0;
                bool hasValue = false;
                foreach (int x in array)
                {
                    if (hasValue)
                    {
                        if (x > value)
                            value = x;
                    }
                    else
                    {
                        value = x;
                        hasValue = true;
                    }
                }
                if (hasValue) return value;
                throw new Exception("没找到");
            }

    平均值

            /// <summary>
            /// 平均值
            /// </summary>
            /// <param name="source"></param>
            /// <returns></returns>
            public static double? Average(int[] array)
            {
                if (array == null) throw new Exception("数组空异常");
                long sum = 0;
                long count = 0;
                checked
                {
                    foreach (int? v in array)
                    {
                        if (v != null)
                        {
                            sum += v.GetValueOrDefault();
                            count++;
                        }
                    }
                }
                if (count > 0) return (double)sum / count;
                return null;
            }

    4.测试输出

    测试代码

            static void Main(string[] args)
            {
                int[] array = new int[] { 1,2,4,3,0,-1,34,545,2,34};
    
                Console.WriteLine("--------------Array自身方法-----------------");
                Console.WriteLine("Min:{0}",array.Min());
                Console.WriteLine("Max:{0}", array.Max());
                Console.WriteLine("Average:{0}", array.Average());
    
                Console.WriteLine("---------------内部实现方法------------------");
                int min = Program.Min(array);
                int max = Program.Max(array);
                double? average = Program.Average(array);
                Console.WriteLine("Min:" + min);
                Console.WriteLine("Max:" + max);
                Console.WriteLine("Average:" + average);
                Console.Read();
            }

    输出结果

    以上代码也是从.NET Framework中摘出来的,实际上 Array的自带求最大值、最小值、平均值的算法就是这样做的,在.NET Framework源码中可以看到

    5.工程源码下载

    源代码下载

    展开全文
  • 功能:从一个字符数组中取出相应的整数、实数 作者:班草  */ #include #include #include void read_num( char *str , int *read_int , double *read_double);  int main() {  char *str = ...
    /*
    
    功能:从一个字符数组中取出相应的整数、实数
    作者:班草
     */
    #include <stdio.h>
    #include <malloc.h>
    #include <math.h>


    void read_num( char *str , int *read_int , double *read_double); 


    int main()
    {
        char *str = NULL;
        int *read_int = NULL;
        double *read_double = NULL;
      
        str = (char *)malloc(sizeof(char)*1024); //分配堆空间
        read_int = (int *)malloc(sizeof(int)*1024);
        read_double = (double *)malloc(sizeof(double)*1024);
        
        printf("input string:"); //输入字符串
        scanf("%s",str);


        read_num( str , read_int , read_double ); //调用函数
        
        int i = 0;


        printf("int :"); //输出整型
        for( i = 1 ; i <= read_int[0] ; i ++ )
        {
            printf("\t%d",read_int[i]);
        }
        printf("\n");


        printf("double:"); //输出实型
        for( i = 1 ; i <= (int)read_double[0] ; i++ )
        {
            printf("\t%g",read_double[i]);
        }
        printf("\n");


        free(str); //释放堆空间
        str = NULL;
        free(read_int);
        read_int = NULL;
        free(read_double);
        read_double = NULL;


        return 0;
    }
    void read_num( char *str , int *read_int , double *read_double )
    {
        int flag = 1;           //正负符号变量
        int read = 0;           //读标志,为1时表示读取到值
        int i_int = 1;          //整形数组的下标
        int i_double = 1;       //实形数组的下标


        read_int[0] = 0;        //数组第一个数,表示读取到的值的数量
        read_double[0] = 0;
        
        int x = 0;              
        int u = 0;
        int zi = 0;             //这三个变量用于将字符串数字转换为整形
        double fzi = 0.0;       //存放小数点后的数值


        while( *str != '\0' )   //遍历字符串
        {
            if( *str == '-' )   //判断是否为负号,
            {
                flag = -1;
                str ++;
            }


            for( x = 0 ; *str >= '0' && *str <= '9' ; x++ , str ++ )  //读取字符串中一段连续的数字,转换为整型
            {  //如125.6,读出为125
                u = *str - '0';
                if( x == 0 )
                {
                    zi = u;
                }
                else
                {
                    zi = zi * 10 + u;
                }
                read = 1;
            }
            if( *str == '.' && read == 1 )      //如果遇到小数点且小数点前为数字
            {
                str ++;
                for( x = 0 ; *str >= '0' && *str <= '9' ; x++ , str ++ ) //读小数点后的值
                {
                    u = *str - '0';
                    if( x == 0 )
                    {
                        fzi =(double)u / pow(10,x+1);
                    }
                    else
                    {
                        fzi += (double)u / pow(10,x+1);
                    }
                }
                if( fzi != 0.0 ) //如果小数点后读到了值,将其值转换为对应的实数然后加上前面的整数,存放到实型数组
                {
                    read_double[0]++;
                    read_double[i_double++] = (zi + fzi) * flag;
                    read = 0;
                }
            }
            if( read == 1)      //判断是否读到值
            {
                read_int[0]++;
                read_int[i_int++] = zi * flag;
                read = 0;
            }
            flag = 1;
        }
    }
    展开全文
  • 1、 给定一个数组,可以从数组中取出下标不连续的任意个数,求可以取出的数的和的最大值, 例如:给出数组A[]={1,2,2,5,3,4,3}可以取出最大和为2+5+4=11。 现再给定数组{3,9,7,5,1,3,1,2,7},能取出的数的和的...

    1、 给定一个数组,可以从数组中取出下标不连续的任意个数,求可以取出的数的和的最大值,

    • 例如:给出数组A[]={1,2,2,5,3,4,3}可以取出的最大和为2+5+4=11。
    • 现再给定数组{3,9,7,5,1,3,1,2,7},能取出的数的和的最大值是24。

    2、分析
    在这里插入图片描述3、代码

    
        private static int dp1(int arr[],int len) {
            int ret=0;
            if (len==0) {
                return 0;
            }else if (len==1) {
                return arr[0];
            }else if (len==2) {
                return Math.max(arr[0],arr[1]);
            }else {
                for(int i=2;i<len;i++) {
                    int r1=dp1(arr,len-2)+arr[i];
                    int r2=dp1(arr,len-1);
                    ret=Math.max(r1,r2);
                }
                return ret;
    
            }
       }
    
    //优化
     private static int dp1(int arr[]) {
    	    int n = nums.length;
            if (n == 0) {
                return 0;
            }
            if (n == 1) {
                return nums[0];
            }
            int[] dp = new int[n];
            dp[0] = nums[0];
            dp[1] = Math.max(nums[0], nums[1]);
            for (int i = 2; i < n; i++) {
                dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]);
            }
            return dp[n - 1];
        }
    

    **

    2. 给定一个正整数s, 判断一个数组arr中,是否有一组数字加起来等于s。

    **

    /**
         *
         * 2. 给定一个正整数s, 判断一个数组arr中,是否有一组数字加起来等于s。
         */
        private static boolean isS(int[] arr,int i,int s) {
            if (i==0) {
                return arr[0]==s;
            }else if (s==0) {
                return true;
            }else if (arr[i]>s){
                return isS(arr,i-1,s);
    
            }else {
                return isS(arr,i-1,s)||isS(arr,i-1,s-arr[i]);//又可分为两种情况,arr[i-1]>s
            }
        }
        private static boolean isS2(int[] arr,int s) {
            boolean set[][]=new boolean[arr.length][s+1];
            set[0][arr[0]]=true;
            int i=0;
            int j=0;
            for (i = 0; i < arr.length ; i++) {
                set[i][0]=true;
            }
            for (i = 1; i < arr.length; i++) {
                for (j = 1; j < s+1; j++) {
                    if (arr[i]>j){
                        set[i][j]=set[i-1][j];
                    }else {
                        boolean a = set[i-1][j];
                        boolean b = set[i-1][s-arr[i]];
                        set[i][j]=a||b;
                    }
                }
    
            }
            return set[i-1][j-1];
        }
    

    神奇的口袋:

    有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。

    输入描述:

    输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值。

    输出描述:

    输出不同的选择物品的方式的数目。

    示例1 输入

    3 20 20 20

    输出

    3

    代码:

    import java.util.Scanner;
    
    public class Main{
        static int[] arr=new int[21];
        static int n;
        private static int count(int v,int i) {
            if(v==0) {
                return 1;
            }if(i==n||v<0) {
                return 0;
            }
            
            return count(v-arr[i],i+1)+count(v,i+1);//选arr[i]和不选arr[i]
            
        }
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            n=in.nextInt();
            
            for (int i = 0; i < n; i++) {
               arr[i]=in.nextInt();
            }
            System.out.println(count(40,0));
        }
    }
    
    展开全文
  • 现在获取数组中最大最小值用的越来越多了,于是乎我编了方法供大家使用。代码如下,若有问题可以与我联系,咱们一起学习一起进步。 代码如下: function getMaximin (arr,maximin) { if (maximin == “max”) { ...
  • go数组练习:从一个整数数组获取最大整数,最小整数,总数以及平均值

    需求:从一个整数数组中获取最大整数,最小整数,总数以及平均值

    注意:

    1. 如果不对max、min赋初始值,则其默认为0,可能会出现没有比0大或没有比0小的情况导致出错,因此一般将max和min赋值为数组第一个元素值。
    2. for循环既可以使用i进行遍历,也可以利用rang进行遍历,用_接收无用参数。

    代码

    package main
    
    import "fmt"
    
    func main() {
    	a := [6]int{14, 64, 37, 72, 75, 37}
    	max := a[0]
    	min := a[0]
    	sum := 0
    	// 不进行初始赋值的情况下,没有数据小于0,可能导致结果出错
    	//var max int
    	//var min int
    	//var sum int
    	//for _, value := range a {
    	//	if value > max {
    	//		max = value
    	//	}
    	//	if value < min {
    	//		min = value
    	//	}
    	//	sum+=value
    	//}
    	for i := 0; i < len(a); i++ {
    		if a[i] > max {
    			max = a[i]
    		}
    		if a[i] < min {
    			min = a[i]
    		}
    		sum += a[i]
    	}
    	avg := float32(sum/len(a))
    	fmt.Printf("数组a的最大值为:%d\n数组a的最小值为:%d\n"+
    		"数组a的总和为:%d\n数组a的平均值为%f\n", max, min, sum, avg)
    }
    
    

    运行结果:

    在这里插入图片描述

    展开全文
  • 之前也遇到过类似的问题,如求n个数组任意选取一个元素的所有组合都是想起来比较简单,但是设计成算法却颇费周折。如数组为{1, 2, 3, 4, 5, 6},那么中取出3个元素的组合有哪些,取出4个元素的组...
  • 从一个字符数组中读出相应的整数、实数// author:yangyang。 //main.c #include "stdafx.h" void shishupanduan(int flag); char s[11]; char *p = s; void main() { gets_s(s); char zhengshu[10]; int i = 0; ...
  • 数组中一个或连 * 续的多个整数组成一个数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 * * @param arr 输入数组 * @return 最大的连续子数组和 */ public static int ...
  • 主要介绍了c#获取数组中最大数的值,需要的朋友可以参考下
  • ② 在源数组中索引为0的数组元素开始,拷贝index个数组元素到另外一个目标数组 ③ 把临时变量temp赋值给目标数组索引为0的位置 代码如下:public static class ArrHelper {  ///  /// 对类型为T的数组
  • 2. 请用户输入一个整数1--7的值: 根据用户输入,从数组中取出对应的星期名称,例如: 用户输入:1 程序提示:星期一 3. 为了防止用户输入小于1或者大于7的值,请使用异常处理从数组中取出对应的“星期名称”,...
  • 经典算法:超大数组取出最大N数

    千次阅读 2015-12-09 11:09:04
    这里先讲种类似于快速排序的方法。注意题目要求,不要求完全排序,只要求最快解决问题!...原话是1亿数据里,找出前个最大的。 首先看源码吧: void findMaxN(int a[], int start, in
  • JavaScript 随机从数组中取出元素

    千次阅读 2018-12-07 19:08:24
    代码: <!... <title>Title ... var items = ['1','4','9','10'];... var item = items[Math.floor(Math.random()*items...floor() 方法返回小于等于x的最大整数。 eg: console.log(Math.floor(1.6)); //结果为1
  • //从一个整数数组中取出最大整数,最小整数,总和,平均值 //声明一个int类型的数组,并且随意的赋初值 int[] nums={1,2,3,4,5,6,7,8,9,0}; //声明两个变量用来存储最大值和最小值 int max=int.MinValue;//nums[0]...
  • array_column() - 从数组中取出一

    千次阅读 2018-06-07 18:25:47
    array_column() - 从数组中取出一
  • 给定一个数组[1,2,3,4,5,6,7,8,9,10],求出数组中任意组合为之和等于10的数组。 注意,每一种组合中一个数只能出现一次。 数组共有N个元素,那么我们可以用1到2^N的二进制来求解,若二进制数该位置是1,则将其取出求和...
  • python随机取出数组中一个

    万次阅读 2019-04-10 21:24:46
    #!/usr/bin/python # -*- coding:utf-8 -*- import random def randomText(textArr): length = len(textArr) ...randStr = randomText(['数字','数字二','数字三','数字4','数字5']) print randStr
  • 问题描述 我想得到的是特定数,可能不是连续的,而且 数是取出的。 代码 private static int[] randomCreate(int ...//创造一个用于接收的数组 for (int i = 0; i &lt; rands.length; i++) { int temp ...
  • 从数组中取出任意数,求和为指定值的解 PHP <?php $cc = array(1,9,34,56,10,7,3,28,9); function demo($cc,$val){ for ($i = 1; $i < 1 << count($cc); $i++) { $sum = 0; $temp = ""; ...
  • JS如何获取数组中最大

    千次阅读 2020-05-15 17:08:45
    //获取数组中最大值 var nums=[5,13,20,18,32] //声明变量用于保存最大值,吧第一个元素作为最大值 //在比较的时候可以第二个元素开始比较 var s=nums[0]; //遍历数组,得到每个元素 for(var i=0;i<nums.length...
  • 方法: if ($row) { $data = array(); $arr = $row; $discrepancyValue = $abnormalValue = 0; //最小值 do { foreach ($row as $ke =&gt; $va) { switch (coun...
  • 假定大数组包含了n个小数组,分别找到每个小数组最大值,然后把它们串联起来,形成一个数组. 我们可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。 得到数组中最大值我们可以使用Math....
  • C语言-找出数组中最大的两

    千次阅读 2020-07-01 02:03:08
    读取一个包含10个元素的数组,并在其中找到两个最大元素,然后打印它们的总和。 #include <stdio.h> int main(){ int Max,max; const int N = 10; int num[N]; for (int i = 0; i<N; i++) { scanf("%d...
  • 可以使用numpy的random....#a为数组或int值,为数组时会数组中随机选择元素,为int值时会先生成一np.arange(a)的数组,然后从中随机选择元素 #size为int值,为选择元素的个数 #replace默认为Tru...
  • int [] arr = {1,2,3,4}; //产生0-(arr.length-1)的整数值,也是数组的索引 int index=(int)(Math.random()*arr.length); int rand = arr[index];
  • 题目: 输入一个整数数组,将它们连接起来排成一个数,输出能排出的所有数字最小的一个。 例如输入数组{122,12,123},则输出这两个能排成的最小数字12122123。 思路: 新排序规则:从整数数组中取出两个数a和b,...
  • Java中数组获取最大

    千次阅读 2019-06-07 17:51:00
    最大值获取:从数组的所有元素找出最大值。 实现思路: 定义变量,保存数组0索引上的元素 遍历数组,获取出数组中的每元素 将遍历到的元素和保存数组0索引上值的变量进行比较 如果数组元素的值大于了变量的...
  • def func(arr,d): l = [] 注释:枚举 for index,i in enumerate(arr): 注释:遍历索引 for j in range(index+1): if i + arr[j] == d: if i != arr[j]: l.append((i,arr(j))) return l
  • 这是一个呆萌炫酷吊炸天的前端算法题,曾经乃至现在也是叱咤风云在各个面试场景。 可以这样说,有 90% 以上的前端工程师不会做这个题目。 这道题涉及的知识点很多,虽然网上也有相关的解答文章,但是在算法小分队...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,474
精华内容 33,389
关键字:

从一个数组中取出最大的整数