Очистка массива (Необработанное исключение в "0x7c93402a") - C (СИ)

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

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

Всем добрый день. Суть проблемы такова. Есть такая простая программа:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <iostream>
 
using namespace std;
 
#define SIZE 100
#define END system ("pause"); fprintf (outfile, "#######################################################################\n"); goto loop; break;
 
void description ();
void menu ();
void mas_rezult_delete (float mas [SIZE], int number_elements);
void mas_delete (float mas[SIZE][SIZE], int number_elements);
 
int main ()
{
    setlocale(LC_ALL, "Russian");
    
    int var;
    int num_det, time_det;
    int i, j, l; /*Промежуточеые для массивов*/
    float n_t, N, d_n_t, d_t; /*Исходные данные*/
    float sum = 0;
    /*Массив под данные*/
    float mas[SIZE] [SIZE];
    /*Массив под результаты*/
    float mas_rezult [SIZE];
    FILE *outfile;
    FILE *infile_stat_work;
    FILE *infile_stat_rep;
    FILE *infile_stat_zero;
    
    outfile = fopen("C:\\result.txt", "w");
    infile_stat_work = fopen("C:\\StatWork.txt", "r");
    infile_stat_rep = fopen("C:\\StatRep.txt", "r");
    infile_stat_zero = fopen("C:\\StatZero.txt", "r");
    
    description (); /*автор, дисциплина*/
 
loop:
    menu (); /*Меню программы*/
    scanf ("%d", &var);
    switch (var)
    {
    case 1 :
        printf ("Введите число изделий, не отказавших к моменту времени t: \n");
        scanf ("%f", &n_t);
        printf ("Введите число изделий, поставленных на испытания: \n");
        scanf ("%f", &N);
        printf ("Статистическая оценка вероятности безотказной работы изделия: %0.3f \n", n_t / N);
        fprintf (outfile, "Число изделий, не отказавших к моменту времени t: %f, Число изделий, поставленных на испытания: %f, Статистическая оценка вероятности безотказной работы изделия: %f \n", n_t, N, n_t / N);
        END
    case 2 :
        printf ("Введите число изделий, не отказавших к моменту времени t: \n");
        scanf ("%f", &n_t);
        printf ("Введите число изделий, поставленных на испытания: \n");
        scanf ("%f", &N);
        printf ("Статистическая оценка вероятности отказа изделия: %0.3f \n",(N - n_t) / N);
        fprintf (outfile, "Число изделий, не отказавших к моменту времени t: %f, Число изделий, поставленных на испытания: %f, Статистическая оценка вероятности отказа изделия: %f \n", n_t, N, (N - n_t) / N);
        END
    case 3 :
        printf ("Введите число отказавших изделий на участке времени (t, t+d_t): \n");
        scanf ("%f", &d_n_t);
        printf ("Введите интервал времени: \n");
        scanf ("%f", &d_t);
        printf ("Введите число изделий, поставленных на испытания: \n");
        scanf ("%f", &N);
        printf ("Статистическая оценка частоты отказов изделия: %0.3f \n", d_n_t / (N * d_t));
        fprintf (outfile, "Число отказавших изделий на участке времени (t, t+d_t): %f, интервал времени: %f, Число изделий, поставленных на испытания: %f, Статистическая оценка частоты отказов изделия: %f \n", d_n_t,d_t, N, d_n_t / (N * d_t));
        END
    case 4 :
        printf ("Введите число отказавших изделий на участке времени (t, t+d_t): \n");
        scanf ("%f", &d_n_t);
        printf ("Введите интервал времени: \n");
        scanf ("%f", &d_t);
        printf ("Введите число изделий, не отказавших к моменту времени t: \n");
        scanf ("%f", &n_t);
        printf ("Статистическая оценка интенсивности отказов изделия: %0.3f \n", d_n_t / (d_t * n_t));
        fprintf (outfile, "Число отказавших изделий на участке времени (t, t+d_t): %f, интервал времени: %f, Число изделий, не отказавших к моменту времени t: %f, Статистическая оценка интенсивности отказов изделия: %f \n", d_n_t, d_t, n_t, d_n_t / (d_t * n_t));
        END
    case 5 :
        printf ("Введите количество испытанных изделий: \n");
        scanf ("%d", &num_det);
        for (i = 0; i < num_det; i++ )
        {
            for (j = 0; j < 2; j++ )
                {
                    fscanf(infile_stat_work ,"%f", & mas[i] [j] );
                }
        }
        /*вывод массива на экран*/
        printf( "Результаты испытаний:\n" );
        for (i = 0, j = 1; i < num_det; i++ )
            printf( "Деталь %d: %0.3f \n",i + 1, mas[i] [j] );
        printf( "\n" );
        /*Суммирование результатов*/
        for (i = 0, j = 1; i < num_det; i++ )
            sum+=mas[i][j];
        printf( "Статистическая оценка среднего времени безотказной работы изделия: %0.3f \n",sum/num_det);
        for (i = 0, j = 1; i < num_det; i++ )
            fprintf (outfile,"Деталь %d: %0.3f \n",i + 1, mas[i] [j] );
        fprintf (outfile,"Статистическая оценка среднего времени безотказной работы изделия: %0.3f \n",sum/num_det);
        mas_delete (mas, SIZE); 
        END
    case 6 :
        printf ("Введите количество испытанных изделий: \n");
        scanf ("%d", &num_det);
        for (i = 0; i < num_det; i++ )
        {
            for (j = 0; j < 2; j++ )
                {
                    fscanf(infile_stat_rep ,"%f", & mas[i] [j] );
                }
        }
        /*Вывод массива на экран*/
        printf( "Результаты испытаний:\n" );
        for (i = 0, j = 1; i < num_det; i++ )
            printf( "Деталь %d: %0.3f \n",i + 1, mas[i] [j] );
        printf( "\n" );
        /*Суммирование результатов */
        for (i = 0, j = 1; i < num_det; i++ )
            sum+=mas[i][j];
        printf( "Статистическая оценка среднего времени восстановления аппаратуры: %0.3f \n",sum/num_det);
        for (i = 0, j = 1; i < num_det; i++ )
            fprintf (outfile,"Деталь %d: %0.3f \n",i + 1, mas[i] [j] );
        fprintf (outfile,"Статистическая оценка среднего времени восстановления аппаратуры: %0.3f \n",sum/num_det);
        mas_delete (mas, SIZE); 
        END
    case 7 :
        printf ("Введите количество временных промежутков: \n");
        scanf ("%d", &time_det);
        printf ("Введите число изделий, поставленных на испытания: \n");
        scanf ("%f", &N);
        for (i = 0; i < time_det; i++ )
        {
            for (j = 0; j < 3; j++ )
                {
                    fscanf(infile_stat_zero ,"%f", & mas[i] [j] );
                }
        }
        printf ("Результаты испытаний:\n t1: \t t2: \t ni: \t\n");
        fprintf (outfile, "Результаты испытаний:\n t1: \t t2: \t ni: \t\n");
        for (i = 0; i < time_det; i++ )
        {
            for (j = 0; j < 3; j++ )
                {
                    printf ("%.0f \t", mas[i][j]);
                    fprintf (outfile, "%.0f \t", mas[i][j]);
                }
            printf ("\n");
            fprintf (outfile, "\n");
        }
        for (i = 0, l = 0; i < time_det, l < time_det; i++ , l++)
            mas_rezult[l] = ((mas[i][0] + mas [i][1])/2.0)*mas[i][2];
        for (l = 0; l < time_det; l++)
            sum+=mas_rezult[l];
        printf ("Статистическая оценка среднего времени безотказной работы изделия: %0.3f\n", sum/N);
        fprintf (outfile, "Статистическая оценка среднего времени безотказной работы изделия: %0.3f\n", sum/N);
        mas_delete (mas, SIZE);
        mas_rezult_delete (mas_rezult, SIZE); 
        END
    case 8 :
        system ("pause");
        break;
    }
}
 
void description ()
{
    printf ("Практическая работа №1 по дисциплине надежность систем управления\n");
    printf ("Выполнил студент группы КИ 08-05 Дрозд Олег Владимирович.\n");
}
void menu ()
{
    printf ("Выберите требуюмую сторону надежности: \n"); 
    printf ("1 - Статистическая оценка вероятности безотказной работы изделия \n");
    printf ("2 - Статистическая оценка вероятности отказа изделия \n");
    printf ("3 - Статистическая оценка частоты отказов изделия \n");
    printf ("4 - Статистическая оценка интенсивности отказов изделия \n");
    printf ("5 - Статистическая оценка среднего времени безотказной работы изделия \n");
    printf ("6 - Статистическая оценка среднего времени восстановления изделия \n");
    printf ("7 - Статистическая оценка безотказной работы изделия\nпо результатм наблюдения\n");
    printf ("8 - Выход из программы \n");
}
void mas_delete (float mas[SIZE][SIZE], int number_elements)
{
    int i, j;
        for (i = 0; i < number_elements + 1; i++)
            for (j = 0; j < SIZE +1; j++)
                mas[i][j] = 0;
}
void mas_rezult_delete (float mas [SIZE], int number_elements)
{
    int i;
        for (i = 0; i < number_elements + 1; i++)
            mas [i] = 0;
}
Первые четыре функции работают нормально, а вот в трех остальных... . Расчеты проходят без ошибок (рис. 1), но при попытке затереть массив нулями получаю вот это (рис. 2). Вопрос, что с этим делать? Или можно ли еще как-нибудь зачистить массивы от промежуточных данных?

Решение задачи: «Очистка массива (Необработанное исключение в "0x7c93402a")»

textual
Листинг программы
    for (i = 0; i < number_elements; i++)

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


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

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

6   голосов , оценка 3.833 из 5
Похожие ответы