账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    C++ 程序问题找不到
    • 2019-07-21 00:00
    • 11
    54
    0
        #include<iostream>
     #include<ctime>
     #include<random>
     using namespace std;
     template<typename T>
     void Sort(T *a, T n)    
     {
        bool ft = false;
        for (size_t len = n; len > 1 && !ft; --len)
        {
            size_t Max = 0;
            ft = true;
            for (size_t i = 1; i != len; ++i)
            {
                if (a[Max] <= a[i])
                {
                    Max = i;
                }
                else
                    ft = false;
            }
            swap(a[Max], a[len - 1]);
        }
    }
     template<typename T>
     size_t Serach(T *a, T n, const T&x)
     {
        size_t right = n - 1;
        size_t left = 0;
        while (left<=right) 
        {
            size_t len = (right + left) / 2;
            if (a[len] == x)
                return len;
            if (a[len] > x)
                right = len - 1;
            else
                left = len + 1;
        }
        return -1;
    }
     template<typename T>
     size_t rach(T *a, T n, const T&x)
    {
        size_t i;
        for (i = 0; i != n && a[i] != x; ++i);
        if (i != n)
            return i;
        return -1;
    }
    int main() 
    {
        constexpr size_t len = 1000;
        size_t a[len],setp=10;
        default_random_engine e(time(0));
        double Clock = static_cast<double>(CLOCKS_PER_SEC) / len;
        for (size_t n = 10; n != len; n += setp)
        {
            long sum = 0;
            clock_t startTime = clock();
            uniform_int_distribution<size_t> u(0, n);
            do 
            {
                ++sum;
                for (size_t i = 0; i != n; ++i)
                    a[i] = n - i;
                Sort(a, n);
     #define NDEBUG
     #ifndef NDEBUG
                rach(a, n, u(e));
     #endif
                Serach(a, n, u(e));
            } while (clock() - startTime < 100);    
        
            double elispce = (clock() - startTime) / Clock;
            cout << "数组大小 " << n << " 循环次数 " << sum << " 循环时间 " << elispce << endl;
            cout << "平均循环时间 " << elispce / sum << endl;
            if (n == 100)
                setp = 100;
        }
        system("pause");
        return 0;
     }

    我要是单步走不会出问题,
    不调试直接运行if (a[len] == x)这一段就是报错
    找不到问题,哪个大佬看看

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 摇曳彼岸花 普通会员 1楼

      在C++程序中,找不到文件的问题可能是由于以下几个原因造成的:

      1. 文件路径不正确:在编写程序时,一定要确保输入的文件路径是正确的,特别是在相对路径和绝对路径的使用上。

      2. 文件未存在:如果文件已经存在,但程序试图打开它,那么程序将无法找到它。在程序中,你可以使用assert语句来检查文件是否存在,如果文件不存在,你可以抛出一个异常。

      3. 文件权限问题:如果文件的权限设置不正确,那么程序可能无法读取或写入文件。你需要确保你有足够的权限来访问和修改文件。

      4. 文件名拼写错误:在打开文件时,你需要确保文件名的拼写是正确的。例如,如果你试图打开名为"myfile.txt"的文件,但拼写错误,程序将无法找到它。

      5. 文件路径写入错误:在程序中,你需要确保你将文件路径写入到正确的位置。如果文件路径写入错误,程序将无法找到它。

      如果你无法确定问题的原因,你可以尝试检查这些方面,或者使用调试工具来逐步跟踪代码,找出问题所在。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部