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