2个不同的代码行在第一次不起作用,然后工作

时间:2016-12-04 22:43:12

标签: c

我的代码应生成5个数组。

  • 第1和第2个参数从0到最大分辨率的窗口(图形生成窗口(宽度,高度))
  • 第3和第4,参数从-20到20
  • 5,参数等于球数+ 1
  • 的力量

但是,在VisualStudio 2k8和2k12上,第一个数组为0,第三个数值远大于( - )20,第五个数组的偶数小于0。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "winbgi2.h"

int s, w;
int i;
int x[20], y[20], vx[20], vy[20], m[20]; 

void init(int a[20], int b[20], int c[20], int d[20], int e[20]);

void main() {
    srand((unsigned) time(NULL));

    int min;
    int max;
    min = 100;
    max = 1000;
    s = min + rand() % max;
    w = min + rand() % max;

    graphics(s, w);

    init(&x[20], &y[20], &vx[20], &vy[20], &m[20]);

    for (i = 1; i <= 20; i++) {
        printf("Array element x=%ld \t is equal to %ld\n", i, x[i]);
    };

    for (i = 1; i <= 20; i++) {
        printf("Array element y=%ld \t is equal to %ld\n", i, y[i]);
    };

    for (i = 1; i <= 20; i++) {
        printf("Array element vx=%ld \t is equal to %ld\n", i, vx[i]);
    };

    for (i = 1; i <= 20; i++) {
        printf("Array element vy=%ld \t is equal to %ld\n", i, vy[i]);
    };

    for (i = 1;i <= 20; i++) {
        printf("Mass of ball m=%ld \tis %ld\n", i, m[i]);
    };

    wait();
}

void init(int a[20], int b[20], int c[20], int d[20], int e[20]) {
    for (i = 1; i <= 20; i++)
        a[i] = rand() % s;

    for (i = 1; i <= 20; i++)
        b[i] = rand() % w;

    for (i = 1; i <= 20; i++)
        c[i] =- 20 + rand() % 40;

    for (i = 1; i <= 20; i++)
        d[i] =- 20 + rand() % 40;

    for (i = 1; i <= 20; i++)
        e[i] = i * i * 2 + 1;
}

我感到茫然:为什么这段代码一次性工作不好,下次一切都很好。

0 个答案:

没有答案