Ошибка компиляции "malloc: идентификатор не найден" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно чтобы пользователь сам вводил элементы a,b,c,d,k.(и эти элементы должны быть только цифрами. ) Выводит такую ошибку "error C3861: malloc: идентификатор не найден". Помогите, пожалуйста.
Листинг программы
  1. #include "stdio.h"
  2. #include <malloc.h>
  3. #include "stdafx.h"
  4. #define n 2
  5. #define V 100
  6. float f (float x, float y)
  7. {float a, b, c, k, d;
  8. return a*x+b*y+c*(x*x)+d*(y*y)+k;
  9. }
  10.  
  11. void main ()
  12. {
  13. float tochnost = 0.000000000001;
  14. float X[n + 5][n];
  15. float E;
  16. float *a,*b,*c,*d,*k;
  17. X[0][0] = 0; X[0][1] = 1; X[1][0] = 1;
  18. X[1][1] = 4; X[2][0] = 2; X[2][1] = 5;
  19. int A, B, C,flag = 0, flag2=0;
  20. int kolichestvo = 0;
  21.  
  22. printf("hotite yvidet iteracii? da=Y,Net=X\n");
  23. char W;
  24. scanf("%c",&W);
  25. switch(W)
  26. { case 'Y':
  27. { flag=1;flag2=1; break; }
  28. case 'X':
  29. { flag2=1; break; }
  30. }
  31. defaulf:
  32. {printf("Oshibka\n ");}
  33.  
  34. do
  35. {
  36. a = (float *)malloc(sizeof(V) ) ;
  37. b =(float *) malloc(sizeof(V) ) ;
  38. c =(float *) malloc(sizeof(V) ) ;
  39. d =(float *) malloc(sizeof(V) ) ;
  40. k =(float *) malloc(sizeof(V) ) ;
  41. printf("Vvedite a=");
  42. scanf("%f",&a[V]);
  43. printf("Vvedite b=");
  44. scanf("%f",&b[V]);
  45. printf("Vvedite c=");
  46. scanf("%f",&c[V]);
  47. printf("Vvedite d=");
  48. scanf("%f",&d[V]);
  49. printf("Vvedite k=");
  50. scanf("%f",&k[V]);
  51.  
  52. kolichestvo++;
  53. A = 0; B = 0; C = 0;
  54. float Maxsimum = f(X[0][0], X[0][1]);
  55. float Minimum = f(X[0][0], X[0][1]);
  56. for (int D = 1; D <= n; D ++)
  57. {
  58. if (f(X[D][0], X[D][1]) < Minimum)
  59. {
  60. Minimum = f(X[D][0], X[D][1]);
  61. B = D;
  62. }
  63. if (f(X[D][0], X[D][1]) > Maxsimum)
  64. {
  65. Maxsimum = f(X[D][0], X[D][1]);
  66. A = D;
  67. }
  68. }
  69. Maxsimum = f(X[0][0], X[0][1]);
  70. for (int D = 1; D <= n; D ++)
  71. {
  72. if ((f(X[D][0], X[D][1]) > Maxsimum) && (D != A))
  73. {
  74. Maxsimum = f(X[D][0], X[D][1]);
  75. C = D;
  76. }
  77. }
  78. X[n + 1][0] = (X[0][0] + X[1][0] + X[2][0] - X[A][0]) / n;
  79. X[n + 1][1] = (X[0][1] + X[1][1] + X[2][1] - X[A][1]) / n;
  80. for (int i = 0; i < n; i++)
  81. X[n + 2][i] = 2 * X[n + 1][i] - X[A][i];
  82. if (f(X[n + 2][0], X[n + 2][1]) < f(X[B][0], X[B][1]))
  83. {
  84. X[n + 3][0] = X[n + 1][0] + 2 * (X[n + 2][0] - X[n + 1][0]);
  85. X[n + 3][1] = X[n + 1][1] + 2 * (X[n + 2][1] - X[n + 1][1]);
  86. if (f(X[n + 3][0], X[n + 3][1]) < f(X[B][0], X[B][1]))
  87. {
  88. X[A][0] = X[n + 3][0];
  89. X[A][1] = X[n + 3][1];
  90. }
  91. else
  92. {
  93. X[A][0] = X[n + 2][0];
  94. X[A][1] = X[n + 2][1];
  95. }
  96. }
  97. else
  98. if (f(X[n + 2][0], X[n + 2][1]) > f(X[C][0], X[C][1]))
  99. {
  100. if (!(f(X[n + 2][0], X[n + 2][1]) > f(X[A][0], X[A][1])))
  101. {
  102. X[A][0] = X[n + 2][0];
  103. X[A][1] = X[n + 2][1];
  104. }
  105. X[n + 4][0] = X[n + 1][0] + 0.5 * (X[A][0] - X[n + 1][0]);
  106. X[n + 4][1] = X[n + 1][1] + 0.5 * (X[A][1] - X[n + 1][1]);
  107. if (!(f(X[n + 4][0], X[n + 4][1]) > f(X[A][0], X[A][1])))
  108. {
  109. X[A][0] = X[n + 4][0];
  110. X[A][1] = X[n + 4][1];
  111. }
  112. else
  113. {
  114. for (int D = 0; D < n; D++)
  115. {
  116. X[D][0] = X[D][0] + 0.5 * (X[D][0] - X[B][0]);
  117. X[D][1] = X[D][1] + 0.5 * (X[D][1] - X[B][1]);
  118. }
  119. }
  120. }
  121. else
  122. {
  123. X[A][0] = X[n + 2][0];
  124. X[A][1] = X[n + 2][1];
  125. }
  126. float E1 = 0, E2 = 0;
  127. for (int D = 0; D < n + 1; D++)
  128. {
  129. E1 += f(X[D][0], X[D][1]);
  130. E2 += f(X[D][0], X[D][1]) * f(X[D][0], X[D][1]);
  131. }
  132. E = E2 - E1 * E1 / (n + 1);
  133. E /= (n + 1);
  134. if (flag==1) {printf("%.4f %.4f\n", X[0][0], X[0][1]);}
  135. if (flag==1) {printf("%.4f %.4f\n", X[1][0], X[1][1]);}
  136. if (flag==1) {printf("%.4f %.4f\n", X[2][0], X[2][1]);}
  137. Minimum = f(X[0][0], X[0][1]);
  138. for (int D = 1; D <= n; D++)
  139. {
  140. if (f(X[D][0], X[D][1]) < Minimum)
  141. {
  142. Minimum = f(X[D][0], X[D][1]);
  143. B = D;
  144. }
  145. }
  146. if (flag==1){ printf("f = %.4f\n" , f(X[B][0], X[B][1]));}
  147. if (flag==1) {printf(" \n\n\n");}
  148. }
  149. while (E > tochnost);
  150. if (flag2==1) printf("X = %.4f\n", X[n+1][0]);
  151. if (flag2==1)printf("Y = %.4f\n", X[n+1][1]);
  152. if (flag2==1)printf("Minimum fynkcii = %.4f\n",f(X[n + 1][0], X[n + 1][1]));
  153. if (flag2==1)printf("Vsego iteraciy = %d\n", kolichestvo);
  154. getchar();
  155. getchar();
  156. }

Решение задачи: «Ошибка компиляции "malloc: идентификатор не найден"»

textual
Листинг программы
  1.     a = (float *)malloc(sizeof(V) ) ;
  2.     b =(float *) malloc(sizeof(V) ) ;
  3.     c =(float *) malloc(sizeof(V) ) ;
  4.     d =(float *) malloc(sizeof(V) ) ;
  5.     k =(float *) malloc(sizeof(V) ) ;
  6.    printf("Vvedite a=");
  7.    scanf("%f",&a[V]);
  8.     printf("Vvedite b=");
  9.    scanf("%f",&b[V]);

Объяснение кода листинга программы

  1. Код выделяет память под массив из 5 элементов, используя функцию malloc.
  2. Переменные a, b, c, d и k используются для хранения адресов выделенных блоков памяти.
  3. Значение V используется в качестве размера массива при выделении памяти.
  4. Используется функция scanf для ввода значений в элементы массива a и b.
  5. Ошибка компиляции malloc: идентификатор не найден может быть связана с отсутствием определения переменной V.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы