用空行结束动态二维数组(输入)

时间:2018-11-06 23:49:02

标签: c jagged-arrays

我需要使用以下输入在C中创建2D动态数组:

3(spacja)21(spacja)11(enter) 
4(spacja)5(spacja)125(spacja)45(enter) 
1(spacja)9(spacja)4(enter) 
(enter)

空白行必须结束输入,但是我无法使其工作。

  for (int m = 0;; ++m) {
    a = (float **) realloc(a, (m + 1) * sizeof(*a));
    a[m]=NULL;
    i = 0;
    while ((count = scanf("%f%c", &tmp, &follow)) > 0) {
      if (count == 2 && (isspace(follow) || follow == '\n')) {
        a[m] = (float*) realloc(a[m], (i + 1) * sizeof(float));
        a[m][i] = tmp;
        i++;
        if (follow == '\n') {
          n[m] = i;
          break;
        }
      } else {
        printf("Wprowadzono bledne dane\n");  // Wrong data has been entered
        EXIT_SUCCESS;
      }
    }
  }

0 个答案:

没有答案