Ошибка в коде - 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];

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

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

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


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

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

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