首页 > 解决方案 > C中的数组输出故障

问题描述

此代码正在运行但没有输出我的错是什么?我,想要数组,我想写这个数组并比较这个数组的列和行。但是这段代码没有输出。另一个问题是我想使用动态编程我该怎么做?

代码:

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

double CompFunc(int *n, int *m, int *x, int *y) {

  int first[*n][*m];
  srand(time(0));
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      first[i][j] = rand() % 10 + 1;
    }
  }

  printf("First array:\n");
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      printf("%d", first[i][j]);
      if (j == m - 1) {
        printf("\n");
      }
    }
  }

  int second[*x][*y];
  srand(time(0));

  for (int i = 0; i < x; i++) {
    for (int j = 0; j < y; j++) {
      second[i][j] = rand() % 10 + 1;
    }
  }

  printf("Second array:\n");
  for (int i = 0; i < x; i++) {
    for (int j = 0; j < y; j++) {
      printf("%d ", second[i][j]);
      if (j == y - 1) {
        printf("\n");
      }
    }
  }

  if (n == x || m == y)
    return 1;
  else
    return 0;
}

int main() {
  int a, b, c, d;
  printf("How many elements do you want in the first array's column:");
  scanf("%d", &a);
  printf("How many elements do you want in the first array's row:");
  scanf("%d", &b);
  printf("How many elements do you want in the second array's column:");
  scanf("%d", &c);
  printf("How many elements do you want in the second array's row:");
  scanf("%d", &d);
  CompFunc(&a, &b, &c, &d);
}

标签: c

解决方案


我注意到的一件事是变量n, m,xy都被声明为指针,int*但是当您在 for 循环中迭代它们时,您并没有取消引用它们。

例如

    for(int i=0; i<n; i++){ // you wrote

    for(int i=0; i<*n; i++){ // but you should dereference n

推荐阅读