Ошибка в коде - C (СИ) (70341)
Формулировка задачи:
Подскажите пожалуйста, почему после прохождения цикла for в input выдаёт ошибку: "Необратотанное исключение"?
Листинг программы
- #include"stdafx.h"
- #include <stdio.h>
- #include <tchar.h>
- #include<stdio.h>
- #include<windows.h>
- #include <iostream>
- #include <locale.h>
- #define MAX_N 100
- int N;
- struct proizvodstvo{
- char *vid_produkccii;
- char *edinicci_izmerenia;
- float year_1913;
- float year_1928;
- float year_1940;
- float year_1959;
- };
- bool sizeArr()
- {
- printf("Введите количество поле таблицы:\n");
- if(!(scanf("%d", &N)))
- return false;
- if (N<=0 || N>MAX_N)
- return false;
- else
- return true;
- };
- void input( proizvodstvo a[], int N)
- {
- for(int i=0; i<N; i++)
- {
- printf("Введите вид продукции:");
- scanf("%s", &a[i].vid_produkccii);
- printf("Введите единицы измерения:");
- scanf("%s", &a[i].edinicci_izmerenia);
- printf("Введите объем производства за 1913 год:");
- while(!(scanf("%f", &a[i].year_1913)))
- {
- fflush(stdin); //очистка потока//
- printf("Некорректное значение! Повторите ввод :\n");
- }
- printf("Введите объем производства за 1928 год:");
- while(!(scanf("%f", &a[i].year_1928)))
- {
- fflush(stdin); //очистка потока//
- printf("Некорректное значение! Повторите ввод :\n");
- }
- printf("Введите объем производства за 1940 год:");
- while(!(scanf("%f", &a[i].year_1940)))
- {
- fflush(stdin); //очистка потока//
- printf("Некорректное значение! Повторите ввод :\n");
- }
- printf("Введите объем производства за 1959 год:");
- while(!(scanf("%f", &a[i].year_1959)))
- {
- fflush(stdin); //очистка потока//
- printf("Некорректное значение! Повторите ввод :\n");
- }
- }
- }
- void output(const proizvodstvo a[], int N)
- {
- printf("Основные показатели развития промышленности Украины:\n");
- printf("|Вид продукции|Единицы измерения|1913|1928|1940|1959|\n");
- printf("-----------------------------------------------------\n");
- for(int i=0; i<N; i++)
- {
- printf("|%s |", a[i].vid_produkccii);
- printf(" %s |", a[i].edinicci_izmerenia);
- printf(" %f |", a[i].year_1913);
- printf(" %f |", a[i].year_1928);
- printf(" %f |", a[i].year_1940);
- printf(" %f |", a[i].year_1959);
- }
- }
- void maxproizvodstvo_1928(const proizvodstvo a[], int N)
- {
- int min=a[0].year_1928;
- int i;
- int index=0;
- for(i=0; i<N; i++)
- {
- if(a[i].year_1928<min)
- {
- min=a[i].year_1928;
- index=i;
- }
- }
- printf("\n\В 1928 году производство %s было максимальным и составляло %f объема %s ед.изм.\n", a[index].vid_produkccii, a[index].year_1928,a[index].edinicci_izmerenia);
- }
- int main()
- {
- system("color F0");
- setlocale(LC_ALL, "Russian");
- while(!(sizeArr()));
- proizvodstvo pr_1[MAX_N];
- input(pr_1, N);
- output(pr_1, N);
- maxproizvodstvo_1928(pr_1, N);
- system("pause");
- return 0;
- }
Решение задачи: «Ошибка в коде»
textual
Листинг программы
- char vid_produkccii[какое максимальное количество букофф в продукции вашей будет + 1];
- char edinicci_izmerenia[и тут по такому же принципу + 1];
Объяснение кода листинга программы
- В коде объявлены две переменные типа char: vid_produkccii и edinicci_izmerenia.
- Размер массива vid_produkccii определяется как максимальное количество букофф в продукции вашей будет + 1.
- Размер массива edinicci_izmerenia определяется по такому же принципу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д