Ошибка в коде - 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 определяется по такому же принципу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д