Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
1

Найти максимальное из всех введенных чисел

28.01.2015, 21:54. Просмотров 601. Ответов 14
Метки нет (Все метки)

Добрый день могли бы проверить меня, на понимание работы данной программы.
Кликните здесь для просмотра всего текста

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 int main () {
     int i, n, a, max; 
     printf ("Введите количество чисел: ");
     scanf ("%d", &n);
     printf ("Введите %d чисел: ", n);
    scanf ("%d", &max);// вот здесь не пойму
     for(i = 1; i < n ; i++) {
         scanf ("%d", &a);
         if(a > max) 
             max = a;
     }
     printf ("%d", max);
     return 0;
 }

Т.е. из последовательности чисел введенной пользователем в переменную макс будет записано первое число из последовательности?? и как понимает программа что надо избавляться по одному числу из введенных?? т.е. где происходит переход от первого числа последовательности ко второму??
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2015, 21:54
Ответы с готовыми решениями:

Найти максимальное из двух введенных пользователем чисел
Только начал функции, подкинули такой пример. Буду благодарен за помощь! ...

Найти максимальное число среди чисел введенных с клавиатуры
Найти максимальное число среди чисел введенных с клавиатуры, признак конца...

Найти наименьшее общее кратное всех чисел, введенных с клавиатуры
Всем привет, вообщем мне нужно с помощью функции поиска НОК(Наименьшее общее...

Найти сумму всех четных и произведение нечетных из 10-ти введенных чисел с клавиатуры
uses crt; var x, j, p, s: integer; begin p:=1; s:=0; for j:=1 to 10 do...

Найти максимальное значение из введенных
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include&lt;iostream&gt;...

14
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 21:59 2
Toktobaev, напишите комментарий к каждой строке в функции main.
0
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
28.01.2015, 22:07  [ТС] 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 int main () {
     int i, n, a, max; 
     printf ("Введите количество чисел: ");
     scanf ("%d", &n);// здесь в переменную n записывается введенное пользователем число
     printf ("Введите %d чисел: ", n);
     scanf ("%d", &max); //здесь в переменную max записывается первое число из последовательности?? и дальше не понял...
     for(i = 1; i < n ; i++) { // начинает выполняться условие. а что если в последовательности 2 цифры?? то 2й раз цикл не будет повторяться же да?? т.к. условие ложное.
         scanf ("%d", &a);// здесь записывается в переменную а 2е число последовательности??
         if(a > max) 
             max = a;
     }
     printf ("%d", max);
     return 0;
 }
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 22:07 4
Цитата Сообщение от Toktobaev Посмотреть сообщение
scanf ("%d", &a);// здесь записывается в переменную а 2е число последовательности??
Почему второе?
0
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
28.01.2015, 22:10  [ТС] 5
т.к. 1е число было записано в max??
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 22:17 6
Цитата Сообщение от Toktobaev Посмотреть сообщение
т.к. 1е число было записано в max??
а остальные куда будут записываться?
Что делает эта строчка?
C++
1
    for(i = 1; i < n ; i++) {
0
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
28.01.2015, 22:24  [ТС] 7
Остальные будут записываться в max если будут соответствовать условиям for.
т.е. например пользователь ввел 2 числа: 1 и 2...
сначала 1 записывается в макс проверяется условие for, оно является истинным, затем число 2 записывается в переменную а, теперь макс становится равен значению 2, переменная i инкрементируется условие for становится ложным и печатается переменная max т.е. 2.. Мое понимание работы программы такое...
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 22:29 8
Цитата Сообщение от Toktobaev Посмотреть сообщение
Остальные будут записываться в max если будут соответствовать условиям for.
Нет.Ответьте на мой вопрос как его понимаете.

Цитата Сообщение от Toktobaev Посмотреть сообщение
сначала 1 записывается в макс проверяется условие for, оно является истинным, затем число 2 записывается в переменную а
неверно.Почему условие цикла является истинным?
1<1 => false
0
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
28.01.2015, 22:38  [ТС] 9
Сначала пользователь вводит количество чисел: в нашем случае это 2
переменная n равняется 2
затем пользователь вводит два любых числа. к примера 5 и 3
первое из них записывается в переменную макс. т.е. макс у нас равен 5
затем в цикле for (i = 1, 1<2 т.е. true) считывает очередное число ( вот здесь не пойму почему считывается очередное число, т.е. где в коде это прописано ) и записывается в переменную а теперь а у нас равен 3. если тру то обновляется макс( но у нас false, соответственно max остается 5 ), и происходит итерация i во второй раз условие цикла for (i = 2 ; 2<2 false) и печатается max... т.е. 5 наше решение.
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 22:40 10
Цитата Сообщение от Toktobaev Посмотреть сообщение
( вот здесь не пойму почему считывается очередное число, т.е. где в коде это прописано )
Вот здесь:
C
1
scanf ("%d", &a);
на каждой итерации цикла,будет произведена попытка записать в a очередное число.
Всего будет сделана n-1 попытка.
0
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
28.01.2015, 22:51  [ТС] 11
а где в это время будут записаны введенные пользователем данные?? и можно ли будет вывести скажем в конце всех итераций первое число из последовательности?? т.е. как надо будет прописать код??

Добавлено через 1 минуту
т.е. скажем мы получили макс число из введенных пользователем, а как получить ЕЩЕ и 1е значение..
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 23:01 12
Цитата Сообщение от Toktobaev Посмотреть сообщение
а где в это время будут записаны введенные пользователем данные??
максимальное и первое число(n) сохранятся,текущее в a,промежуточные - удалятся.

Цитата Сообщение от Toktobaev Посмотреть сообщение
т.е. скажем мы получили макс число из введенных пользователем, а как получить ЕЩЕ и 1е значение..
создать отдельную переменную для первого числа.
1
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
28.01.2015, 23:38  [ТС] 13
Цитата Сообщение от S_el Посмотреть сообщение
создать отдельную переменную для первого числа.
а как это сделать не потеряв при этом число для цикла for?
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,735
28.01.2015, 23:53 14
Цитата Сообщение от Toktobaev Посмотреть сообщение
ааа наверное надо будет последовательность реализовать в виде массива да?? если да, то я еще не дошел до этого
верно.

Цитата Сообщение от Toktobaev Посмотреть сообщение
а как это сделать не потеряв при этом число для цикла for?
А при чем здесь цикловое число?Отдельная переменная никак не связана своим значением с другими.Вот до цикла for у вас первое число хранится в переменной a,определите переменную a0 и сохраните в неё значение из a,после ввода,но перед циклом.
1
Toktobaev
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 17
29.01.2015, 23:50  [ТС] 15
Цитата Сообщение от S_el Посмотреть сообщение
Вот до цикла for у вас первое число хранится в переменной a
точнее в переменной макс.. Всее понял, спасибо ))
0
29.01.2015, 23:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2015, 23:50

Определить среднее арифметическое всех введенных чисел
С клавиатуры вводятся числа, в порядке возрастания их значения. Признаком конца...

Вычислить сумму факториалов всех введенных чисел
С клавиатуры вводится строго возрастающая последовательность натуральных чисел...

Вычислить сумму факториалов всех введенных чисел
С клавиатуры вводится строго возрастающая последовательность натуральных чисел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru