单元测试

本文详细阐述了如何优化数组最大值查找算法,特别关注于初始化问题和数组长度为0的情况。通过实例代码展示了改进后的实现方式,并强调了模块化测试的重要性。此外,文章还提供了解决方案,确保程序在处理特定边界条件时能够正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:

#include<iostream>

using namespace std;

 

int Largest(int list[], int length)

{

    int i, max;

    max = list[0];

    for (i = 0; i < length ; i++)

    {

        if (list[i]>max)

        {

            max = list[i];

        }

    }

    return max;

}

 

void main()

{

    int list[5],length;

    int i;

    cin >> length;

    for (i = 0; i < length; i++)

    {

        cin >> list[i];

    }                

    cout << Largest(list, length);

}

 

错误:

max变量要初始化,否则计算机会根据之前的存储情况赋值,或许导致结果错误。i<length,如果是i<(length-1),那么最后一个数将不能被查到。

截图:

①全是正数

 

②全是负数

 

③有正有负

 

 

④最大值重复

 

⑤如果数组长度为0

 

出现的问题:

由上面的测试结果看,当数组长度为0时,结果会出现问题。

解决方案: 

如果用户输入的数组长度为0,就返回0。

改后代码:

#include<iostream>

using namespace std;

int Largest(int list[], int length)
{

    int i, max;

    max = list[0];

    if (length == 0 || list == NULL)

    {

        return 0;

    }

    for (i = 0; i < length ; i++)

    {

        if (list[i]>max)

        {

            max = list[i];

        }

    }

    return max;

}



void main()

{

    int list[5],length;

    int i;

    cin >> length;

    for (i = 0; i < length; i++)

    {

        cin >> list[i];

    }               

    cout << Largest(list, length);

}

 

总结:我们在写程序的时候应该完成一个模块就对一个模块进行测试修改而不是等到全部代码敲完在测试那样会很困难而且时间浪费的更多。

转载于:https://www.cnblogs.com/dyc940210/p/4594405.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值