Массив. Блок-схема - C (СИ)

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

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

Помогите построить блок-схему:
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int b[6][2],i,m,n,j,s=0;
    float max;
    for(i=0; i < 6; i++)
    for(j=0; j < 2; j++)
    {
        printf("b[%d][%d]=",i,j);
        scanf("%d",&b[i][j]);
    }
    max=b[0][0];
    for(i=0; i < 6; i++)
    for(j=0; j < 2; j++)
    
    {
        if (b[i][j] > max)
        m=i; n=j;
        if (b[i][j] > max)
        max=b[i][j];
    }
    printf ("\nb[%d][%d]",m,m);
    printf("\nmax=%f",max);
    
    system("PAUSE");
    return 0;
}

Решение задачи: «Массив. Блок-схема»

textual
Листинг программы
int main(int argc, char *argv[])
{
   // Объявление переменных 
    int b[6][2],i,m,n,j,s=0;
    /* bsa916115 -> Не очень судите меня за комментарии, но почему массив для сравнения
     * описан как массив целых чисел, а максимальное значение как число с плавающей точкой?
     */
    float max;
    // Цикл по вводу данных массива b[6]
    for(i=0; i < 6; i++)
    // Цикл по вводу данных b[i][j]
    for(j=0; j < 2; j++)
    {
        // Вывод приглашения к вводу
        printf("b[%d][%d]=",i,j);
        // Ввод данных с консоли
        scanf("%d",&b[i][j]);
    }
    // Инициализация значения max
    max=b[0][0];
    // Цикл i, j по сравнению переменных введенного массива
    for(i=0; i < 6; i++)
    for(j=0; j < 2; j++)
    // Проверка значений
    {
       /* bsa916115 -> Зачем 2 раза делать одно и тоже сравнение. Можно объединить в блок */
        if (b[i][j] > max)
        m=i; n=j;
       /* Надо бы {} поставить */
        if (b[i][j] > max)
        max=b[i][j];
    }
    // Вывод результатов на терминал
    printf ("\nb[%d][%d]",m,m);
    /* bsa -> Здесь видимо опечатка. Два раза выводится переменная m. Надо заменить на n, m*/
    printf("\nmax=%f",max);
    /* Здесь форматную строку лучше заменить на %.0f а то после точки знаки повылазиют */
    system("PAUSE");
    return 0;
}

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

  1. Объявление переменных:
    • b[6][2] объявляется массив b размером 6x2, инициализируется нулями;
    • i, j, m, n, s - целочисленные переменные для выполнения операций;
    • max - переменная для хранения максимального значения массива;
    • float max;
    • Установка значения max в первое элемент массива b[0][0].
  2. Циклы для ввода данных в массив b:
    • Внешний цикл for(i=0; i < 6; i++) для ввода данных в каждую строку массива b[6][2];
    • Внутренний цикл for(j=0; j < 2; j++) для ввода данных в каждый столбец массива b[6][2].
  3. Вывод приглашения к вводу и считывание данных с помощью функции scanf:
    • Вывод приглашения b[%d][%d]= для ввода данных в каждую ячейку массива b;
    • Считывание данных с помощью функции scanf в каждую ячейку массива b.
  4. Инициализация значения max:
    • Значение max устанавливается равным первому элементу массива b[0][0].
  5. Циклы для сравнения значений массива b и поиска максимального значения:
    • Внешний цикл for(i=0; i < 6; i++) для перебора строк массива b;
    • Внутренний цикл for(j=0; j < 2; j++) для перебора столбцов массива b.
    • Проверка значения каждого элемента массива b, если оно больше значения max, то обновление значений max, m, n.
  6. Вывод результатов на терминал:
    • Вывод значения m, n;
    • Вывод значения max.
  7. Завершение работы программы:
    • Использование функции system(PAUSE) для приостановки выполнения программы до нажатия клавиши;
    • Возврат значения 0, что означает успешное выполнение программы.

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


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

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

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