没有来自C程序的输出

时间:2015-11-10 16:29:29

标签: c

我在C:

中编写了这段代码
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

int main () {
    int vector1[50000];
    int  n, m, c, i, j;
    int size = 50000;
    int aux;
    clock_t starttime, finaltime;
    long double elapsedtime;
    for (m = 1; m <= 10000; m++){
        starttime = clock();
        for (c = 0; c <= 49999; c++) {
            vector1[c] = rand() % 5000001;
        }
        for(i= size -1; i >= 1; i--) {
            for(j=0; j<i ; j++) {
                if(vector1[j]>vector1[j+1]) {
                    aux = vetor1[j];
                    vector1[j] = vector1[j+1];
                    vector1[j+1] = aux;

                }
            }
        }
        finaltime = clock();

        tempoGasto = (finaltime-starttime);
        printf("time in seconds: %Lf \n", elapsedtime);
    }
    return 0;
}

并且,在编译时,代码窗口:块不显示任何内容

注意:我正在使用Windows 7。 该代码应该对50000个插槽的向量进行排序,填充随机整数10000次,并显示每次程序运行时经过的时间

1 个答案:

答案 0 :(得分:2)

您的代码调用未定义的行为。见这里 -

  for (c = 1; c <= 50000; c++) {
        vetor1[c] = rand() % 5000000 + 1;
    }

这也会访问数组50000的索引vector1,但你没有索引50000,因为你已经声明了这个 -

int vetor1[50000];

您拥有0 to 49999的索引。所以首先改变这个条件。