class 3 求数组中的最大值(单元测试)

1.问题引出:

int Largest(int list[], int length)
{
    int i,max;
    for(i = 0; i < (length – 1); i ++ )
    {
          if(list[i] > max)
          {
              max=list[i];
            }
     }
     return max;
}

由此段程序编写一个正确的程序实现求数组的最大值。

#include <iostream>
using namespace std;

int Largest(int list[],int length)
{
    int i,max = list[0];
    for(i = 0; i < length ; i++)
    {
        ;
        if (list[i] > max)
        {
            max = list[i];
        }
    }
    cout << max << endl;
    return max;
}
void main()
{
    int arr[5] = {-1,0,8,7,4};
    Largest(arr,5);
}

测试时出现的错误有:

i < (length – 1)---i < length;

max没有赋初值,---max = list[0];

修改程序时测试时的数据有:1,2,3,4,5----结果4
分析以后可以看出length处的错误;
0,-4,3,2,1----结果1
可以得出max没有赋初值...
心得体会:一个小测试用例就可以看出一个程序的好坏对错,所以一定要对测试十分重视才行。另外老师说的实现占20%,测试占80%这个行业规范也要记住;关于负数、数值范围、数值类型、空值等一系列的参数或其他条件也要时刻警醒。
时间: 2024-09-30 00:09:14

class 3 求数组中的最大值(单元测试)的相关文章

写一个方法求数组中的最大值,最小值,总和以及平均值。

class Program { /// <summary> /// 求数组中的最大值,最小值,总和以及平均值. /// </summary> /// <param name="nums">输入一个数组</param> /// <returns>返回一个新的数组(max,min,sum,avg)</returns> public static int[] GetMaxMinSumAvg(int[] nums) { i

0130 遍历数组:数组遍历、数组长度、注意点、求数组中的最大值等案例

1.4.1 数组遍历 ? 遍历:把数组中的每个元素从头到尾都访问一次(类似学生的点名),可以通过 for 循环索引遍历数组中的每一项. var arr = ['red','green', 'blue']; for(var i = 0; i < arr.length; i++){ console.log(arrStus[i]); } 1.4.2 数组的长度 数组的长度:默认情况下表示数组中元素的个数 使用"数组名.length"可以访问数组元素的数量(数组长度). var arrS

5.求数组中的最大值

获取数组中的最大值思路: 1.获取最值需要进行比较.每一次比较都会有一个较大的值.因为该值不确定,通过一个变量进行存储 2.让数组中的每一个元素都和这个变量中的值进行比较,如果大于了变量中的值,就用该变量记录较大值 3.当所有的元素都比较完成,那么该变量中存储的就是数组中的较大值了 步骤: 1.定义变量,初始值为数组中任意一个元素即可 2.通过循环对数组进行遍历 3.在遍历过程中定义判断条件,如果遍历到的元素比变量中的元素大,就赋值给该变量 需要定义一个功能来完成,以便提高复用性 1.明确结果,

求数组中的最大值并把它放到最后

import java.util.Arrays;import java.util.Random; public class MaxOfArray {    public static void main(String[] args){        //创建一个10个长度的数组        int[] arr = new int[10];        //随机生成10个0-99之间的数值,放入数组        Random ran = new Random();        for(in

用C随机产生的正整数存到数组中,并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。

用 C 求一组随机数的第二大值,不能通过对整体排序求得 1 随机产生20个[10 , 50]的正整数存到数组中,并求数组中的所有元素最大值.最小值.平均值以及各元素之和,及第二大值.        int a[20];    int sum = 0; //存储数组元素的和    //为数组赋值    printf("数组中的元素为:\n ");    for (int i = 0; i < 20; i ++) {        a[i] = arc4random() % 41 +

不用遍历 递归算法 求数组中数字的最大值

#include "stdio.h"int ax[] ={1000,5,6,8,9,800,5,200,3,6,5,8,9};int paixu (int n, int ret){    if (n==0) return ret>ax[0]?ret:ax[0];    int ret1= ret>ax[n]? ret:ax[n];    return paixu(n-1,ret1);}int main(int argc, char* argv[]){    int numb

算法题:求数组中最小的k个数

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 题目:输入n个整数,找出其中最小的k个数. <剑指offer>给出了两种实现算法: 算法1:采用Partition+递归法,该算法可以说是快速排序和二分查找的有机结合.算法的时间复杂度为O(n),缺点在于在修改Partition的过程中会修改原数组的值. 算法2:采用top-k算法.如果要找最小的K个数,我们才用一个含有K个值的大顶堆:如果要找最大的K个数,我们采用小顶堆.该算法的时间复杂度为O(nlogK),是一种比较好的算法,启发于堆排序

求数组元素的最大值最小值

这是编程之美上的一个题目: 一般的做法: void main() { int a[5]={78,63,78,67,18}; int min=0,max=0; min=max=a[0]; for(int i=0;i<5;i++) { if(min>a[i]) min=a[i]; if(max<a[i]) max=a[i]; } printf("%d,%d\n",max,min); } 这种方法总共比较了2*N次 如何降低比较次数呢? 我在这里着重记录一下分冶法的做法:

如何确定一个数组中的最大值

今天面试的一道题目是这样的,假设有一个数组,求出数组中的最大值,我使用的方法是: 1 var a = [3, 10, 5, 8, 12, 15]; 2 3 function compare(value1, value2) { 4 if (value1 > value2) { 5 return -1; 6 } else if (value1 < value2) { 7 return 1; 8 } else { 9 return 0; 10 } 11 } 12 a.sort(compare); 1