Ошибка в коде - C (СИ) (70341)

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

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

Подскажите пожалуйста, почему после прохождения цикла for в input выдаёт ошибку: "Необратотанное исключение"?
Листинг программы
  1. #include"stdafx.h"
  2. #include <stdio.h>
  3. #include <tchar.h>
  4. #include<stdio.h>
  5. #include<windows.h>
  6. #include <iostream>
  7. #include <locale.h>
  8. #define MAX_N 100
  9. int N;
  10. struct proizvodstvo{
  11. char *vid_produkccii;
  12. char *edinicci_izmerenia;
  13. float year_1913;
  14. float year_1928;
  15. float year_1940;
  16. float year_1959;
  17. };
  18. bool sizeArr()
  19. {
  20. printf("Введите количество поле таблицы:\n");
  21. if(!(scanf("%d", &N)))
  22. return false;
  23. if (N<=0 || N>MAX_N)
  24. return false;
  25. else
  26. return true;
  27. };
  28. void input( proizvodstvo a[], int N)
  29. {
  30. for(int i=0; i<N; i++)
  31. {
  32. printf("Введите вид продукции:");
  33. scanf("%s", &a[i].vid_produkccii);
  34. printf("Введите единицы измерения:");
  35. scanf("%s", &a[i].edinicci_izmerenia);
  36. printf("Введите объем производства за 1913 год:");
  37. while(!(scanf("%f", &a[i].year_1913)))
  38. {
  39. fflush(stdin); //очистка потока//
  40. printf("Некорректное значение! Повторите ввод :\n");
  41. }
  42. printf("Введите объем производства за 1928 год:");
  43. while(!(scanf("%f", &a[i].year_1928)))
  44. {
  45. fflush(stdin); //очистка потока//
  46. printf("Некорректное значение! Повторите ввод :\n");
  47. }
  48. printf("Введите объем производства за 1940 год:");
  49. while(!(scanf("%f", &a[i].year_1940)))
  50. {
  51. fflush(stdin); //очистка потока//
  52. printf("Некорректное значение! Повторите ввод :\n");
  53. }
  54. printf("Введите объем производства за 1959 год:");
  55. while(!(scanf("%f", &a[i].year_1959)))
  56. {
  57. fflush(stdin); //очистка потока//
  58. printf("Некорректное значение! Повторите ввод :\n");
  59. }
  60. }
  61. }
  62. void output(const proizvodstvo a[], int N)
  63. {
  64. printf("Основные показатели развития промышленности Украины:\n");
  65. printf("|Вид продукции|Единицы измерения|1913|1928|1940|1959|\n");
  66. printf("-----------------------------------------------------\n");
  67. for(int i=0; i<N; i++)
  68. {
  69. printf("|%s |", a[i].vid_produkccii);
  70. printf(" %s |", a[i].edinicci_izmerenia);
  71. printf(" %f |", a[i].year_1913);
  72. printf(" %f |", a[i].year_1928);
  73. printf(" %f |", a[i].year_1940);
  74. printf(" %f |", a[i].year_1959);
  75. }
  76. }
  77. void maxproizvodstvo_1928(const proizvodstvo a[], int N)
  78. {
  79. int min=a[0].year_1928;
  80. int i;
  81. int index=0;
  82. for(i=0; i<N; i++)
  83. {
  84. if(a[i].year_1928<min)
  85. {
  86. min=a[i].year_1928;
  87. index=i;
  88. }
  89. }
  90. printf("\n\В 1928 году производство %s было максимальным и составляло %f объема %s ед.изм.\n", a[index].vid_produkccii, a[index].year_1928,a[index].edinicci_izmerenia);
  91. }
  92. int main()
  93. {
  94. system("color F0");
  95. setlocale(LC_ALL, "Russian");
  96. while(!(sizeArr()));
  97. proizvodstvo pr_1[MAX_N];
  98. input(pr_1, N);
  99. output(pr_1, N);
  100. maxproizvodstvo_1928(pr_1, N);
  101. system("pause");
  102. return 0;
  103. }

Решение задачи: «Ошибка в коде»

textual
Листинг программы
  1. char vid_produkccii[какое максимальное количество букофф в продукции вашей будет + 1];
  2. char edinicci_izmerenia тут по такому же принципу + 1];

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

  1. В коде объявлены две переменные типа char: vid_produkccii и edinicci_izmerenia.
  2. Размер массива vid_produkccii определяется как максимальное количество букофф в продукции вашей будет + 1.
  3. Размер массива edinicci_izmerenia определяется по такому же принципу.

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


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

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

15   голосов , оценка 4 из 5

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

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

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