Округлить среднюю величину до ближайшего целого значения - C (СИ)

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

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

вот содержимое файла file: 0 0 9 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 5 8 9 9 8 5 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 8 1 9 8 5 4 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 5 8 9 9 8 5 0 4 5 2 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 4 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 1 8 5 0 0 0 4 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 4 5 2 0 0 0 0 0 5 5 5 5 5 5 5 5 5 5 5 5 5 8 9 9 8 5 5 5 5 5 5 5 5 5 5 5 5 5 8 8 8 8 8 8 8 8 8 8 8 8 5 8 9 9 8 5 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 3 9 9 9 9 9 9 9 8 8 8 8 8 8 8 8 8 8 8 8 5 8 9 9 8 5 8 8 8 8 8 8 8 8 8 8 8 8 5 5 5 5 5 5 5 5 5 5 5 5 5 8 9 9 8 5 5 5 5 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 6 6 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 5 8 9 9 8 5 0 0 5 6 0 0 6 5 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 5 8 9 9 8 5 0 5 6 1 1 1 1 6 5 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 5 8 9 9 8 5 0 0 5 6 0 0 6 5 0 0 0 0 0 0 0 0 5 5 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 0 0 0 0 0 0 0 вот код программы:
#include <stdio.h>
#include <stdlib.h>
#define ROWS 20
#define INTCOLS 30
 
int main()
{
    FILE *frw;
    int digit[ROWS][INTCOLS], i, j;
    char picture[ROWS][INTCOLS + 1], *buf;
    if((frw = fopen("file", "r")) == NULL)
    {
        fprintf(stderr, "Невозможно открыть файл \"file\"");
        exit(1);
    }
    else
        for(i = 0; i < ROWS; i++)
            for(j = 0; j < INTCOLS; j++)
                fscanf(frw, "%d", &digit[i][j]);
    fclose(frw);
    
    for(i = 0; i < ROWS; i++)
    {
        for(j = 0; j < INTCOLS; j++)
        {
            switch(digit[i][j])
            {
                case 0:
                    picture[i][j] = ' ';
                    break;
                case 1:
                    picture[i][j] = '.';
                    break;
                case 2:
                    picture[i][j] = '\'';
                    break;
                case 3:
                    picture[i][j] = ':';
                    break;
                case 4:
                    picture[i][j] = '~';
                    break;
                case 5:
                    picture[i][j] = '*';
                    break;
                case 6:
                    picture[i][j] = '=';
                    break;
                case 8:
                    picture[i][j] = '%';
                    break;
                case 9:
                    picture[i][j] = '#';
                    break;
            }
        }
        picture[i][INTCOLS] = '\0';
    }
    if((frw = fopen("fileout", "w")) == NULL)
    {
        fprintf(stderr, "Невозможно открыть файл \"fileout\"");
        exit(1);
    }
    for(i = 0; i < ROWS; i++)
        {
            printf("%s\n", picture[i]);
            fprintf(frw, "%s\n", picture[i]);
        }
    fclose(frw);
    return 0;
}
вот что получилось в файле fileout:
  #         *%##%*'           
    #       *%##%**'          
            *%.#%*~*'         
    #       *%##%* ~*'        
  #         *%##%*  ~*'       
            *%#.%*   ~*'      
            *%##%*    ~*'     
*************%##%*************
%%%%%%%%%%%%*%##%*%%%%%%%%%%%%
#### #################:#######
%%%%%%%%%%%%*%##%*%%%%%%%%%%%%
*************%##%*************
            *%##%*            
            *%##%*    ==      
    ''      *%##%*  *=  =*    
    ::      *%##%* *=....=*   
    ~~      *%##%*  *=  =*    
    **      *%##%*    ==      
            *%##%*            
            *%##%*
Выше задание №12. Мне непонятно что мне нужно сделать по заданию 13. задание 13: Цифровые изображения, особенно те, которые переданы по радиоканалу космическим летательным аппаратом, могут подвергаться кратковременным импульсным помехам. Добавьте в программу из упражнения 12 функцию, подавляющую эти помехи. Она должна сравнивать каждое значение с соседними значениями, расположенными слева и справа, снизу и сверху. Если такое значение отличается более чем на 1 от своих соседей, замените иго средним значением соседних величин. Программа должна округлить среднюю величину до ближайшего целого значения. Обратите внимание, что точки на границах имели менее четырех соседей, поэтому они требуют специальной обработки.
что то как то фигуру замяло надеюсь в цифравом варианте видно что должно быть.

Решение задачи: «Округлить среднюю величину до ближайшего целого значения»

textual
Листинг программы
           [i - 1, j]
[i, j - 1]   [i, j]   [i, j + 1]
           [i + 1, j]
 
 0
555
 8

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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