Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ &引用;链接..\SOURCE\MERGEEXE.EXE:";错误_C++_Mergesort_Turbo C++_Linker Errors - Fatal编程技术网

C++ &引用;链接..\SOURCE\MERGEEXE.EXE:";错误

C++ &引用;链接..\SOURCE\MERGEEXE.EXE:";错误,c++,mergesort,turbo-c++,linker-errors,C++,Mergesort,Turbo C++,Linker Errors,我找到了一个用于测量执行时间的合并排序算法的代码,但是当我运行它时,程序不会显示,并且“Linking..\SOURCE\MERGEEXE.EXE:”在消息面板中。代码的哪一部分是错误的 #include <iostream.h> #include <time.h> void mergesort(int[], int, int); void merge(int[], int, int, int); void mergesort(int a[], int low, int

我找到了一个用于测量执行时间的合并排序算法的代码,但是当我运行它时,程序不会显示,并且“Linking..\SOURCE\MERGEEXE.EXE:”在消息面板中。代码的哪一部分是错误的

#include <iostream.h>
#include <time.h>

void mergesort(int[], int, int);
void merge(int[], int, int, int);
void mergesort(int a[], int low, int high)
{
    int mid;
    if (low < high) {
        mid = (low + high) / 2;
        mergesort(a, low, mid);
        mergesort(a, mid + 1, high);
        merge(a, low, high, mid);
    }
}

void merge(int a[], int low, int high, int mid)
{
    int i, j, k, c[50];
    i = low;
    j = mid + 1;
    k = low;
    while ((i <= mid) && (j <= high)) {
        if (a[i] < a[j]) {
            c[k] = a[i];
            k++;
            i++;
        }
        else {
            c[k] = a[j];
            k++;
            j++;
        }
    }
    while (i <= mid) {
        c[k] = a[i];
        k++;
        i++;
    }
    while (j <= high) {
        c[k] = a[j];
        k++;
        j++;
    }
    for (i = low; i < k; i++) {
        a[i] = c[i];
    }
}

int main()
{
    int randNum[100];
    clock_t sTime;
    srand((unsigned)clock());

    cout << "Start generating random numbers..." << endl;
    for (int index = 0; index < 100; index++) {
        randNum[index] = (rand() % 1000) + 1;
    }

    sTime = clock();
    mergesort(randNum, 0, 99);
    // delay the program by 0.05 second
    clock_t cWait = clock();

    cout << "Total CPU time used: " << (double)(clock() - sTime) / CLOCKS_PER_SEC << " seconds" << endl;
}
#包括
#包括
无效合并排序(int[],int,int);
无效合并(int[],int,int,int);
无效合并排序(整数a[],整数低,整数高)
{
int mid;
如果(低<高){
中等=(低+高)/2;
合并排序(a、低、中);
合并排序(a、中+1、高);
合并(a、低、高、中);
}
}
无效合并(整数a[],整数低,整数高,整数中)
{
inti,j,k,c[50];
i=低;
j=mid+1;
k=低;

当((i> p>您的<强> c< /s>数组是50,而您正在传递100个随机数给函数,因此分割错误。增加您的<强> c<强数组>的大小,它应该工作得很好。

首先确定,这个代码的源代码使用什么编译器?用DEV C++ 5.1尝试,并调整一些地方。这里的代码是编译的答案(尽管我不能保证预期的输出)

#包括
#包括
#包括
使用名称空间std;
无效合并排序(int[],int,int);
无效合并(int[],int,int,int);
无效合并排序(整数a[],整数低,整数高)
{
int mid;
如果(低<高){
中等=(低+高)/2;
合并排序(a、低、中);
合并排序(a、中+1、高);
合并(a、低、高、中);
}
}
无效合并(整数a[],整数低,整数高,整数中)
{
inti,j,k,c[50];
i=低;
j=mid+1;
k=低;

而((我做了一个琐碎的“hello world”节目“show up”?在代码中包含正确的头。为什么您的程序以这种奇怪的方式格式化?代码的哪一部分是错误的?如果您的程序没有生成编译器,编译器会告诉您原因。#包含这是turboc++?我已经更改了c数组,但仍然收到相同的链接错误。现在出现了什么错误?您可以将问题修改为当前的st吗您的程序是否过期?我仍然在消息面板中看到相同的“Linking..\SOURCE\MERGEEXE.EXE:”和“Compiling..\SOURCE\MERGEEXE.EXE:”。没有显示任何警告,表明代码中没有错误
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;

void mergesort(int[], int, int);
void merge(int[], int, int, int);
void mergesort(int a[], int low, int high)
{
    int mid;
    if (low < high) {
        mid = (low + high) / 2;
        mergesort(a, low, mid);
        mergesort(a, mid + 1, high);
        merge(a, low, high, mid);
    }
}

void merge(int a[], int low, int high, int mid)
{
    int i, j, k, c[50];
    i = low;
    j = mid + 1;
    k = low;
    while ((i <= mid) && (j <= high)) {
        if (a[i] < a[j]) {
            c[k] = a[i];
            k++;
            i++;
        }
        else {
            c[k] = a[j];
            k++;
            j++;
        }
    }
    while (i <= mid) {
        c[k] = a[i];
        k++;
        i++;
    }
    while (j <= high) {
        c[k] = a[j];
        k++;
        j++;
    }
    for (i = low; i < k; i++) {
        a[i] = c[i];
    }
}

int main()
{
    int randNum[100];
    clock_t sTime;
    //srand((unsigned)clock(NULL));
    srand (time(NULL));

    cout << "Start generating random numbers..." << endl;
    for (int index = 0; index < 100; index++) {
        randNum[index] = (rand() % 1000) + 1;
    }

    sTime = clock();
    mergesort(randNum, 0, 99);
    // delay the program by 0.05 second
    clock_t cWait = clock();

    cout << "Total CPU time used: " << (double)(clock() - sTime) / CLOCKS_PER_SEC << " seconds" << endl;
}