Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ильгиз96
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 22
#1

Прокомментировать код - C++

25.03.2014, 11:01. Просмотров 345. Ответов 10
Метки нет (Все метки)

что означают строчки начиная с int k =-1;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "iostream"
#include "math.h"
using namespace std;
int main () {
const int n = 10;
        int a[10];
        for ( int i=0; i<n; i++)
        {
 
        cout << " vvedite znachenie"<< i << "elementa massiva\n";
        cin >> a[i];
        }
        cout << "ishodny massiv\n";
        for (int i=0; i<n; i++){
            cout  <<"a["<<i<<"]="<<a[i]<<endl;
        }
        int k=-1;
        for (int i=0; i<n; i++) {
            if(a[i]>0){
                if(k!=-1) {
                    cout<<"summa 1-h polojit ilem = "<<a[k]+a[i]<<endl;
                    break;
                }
                else k=i;
            }
        }
        system ("pause");
        return (0);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Cryptoff
9 / 9 / 1
Регистрация: 18.06.2013
Сообщений: 119
25.03.2014, 11:13     Прокомментировать код #2
C++
1
int k= -1
не несёт никакой информации для Вашего массива, и не изменяется в ходе выполнения цикла.
Arigato
Программист
280 / 177 / 95
Регистрация: 05.12.2013
Сообщений: 667
Записей в блоге: 5
25.03.2014, 11:19     Прокомментировать код #3
Тут находят суммы положительных элементов массива с первым положительным.
Ильгиз96
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 22
25.03.2014, 11:30  [ТС]     Прокомментировать код #4
А можете по подробнее построчно объяснить?
Arigato
Программист
280 / 177 / 95
Регистрация: 05.12.2013
Сообщений: 667
Записей в блоге: 5
25.03.2014, 11:35     Прокомментировать код #5
А самостоятельно разобраться не хочешь?
kiborgdelto
70 / 72 / 27
Регистрация: 23.03.2011
Сообщений: 141
25.03.2014, 12:24     Прокомментировать код #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
k это переменная которая хранит индекс 1-го положительного элемента массива, изначально k =-1 для того чтобы сказать что 1-е положительное число не найдено
C++
1
2
3
4
5
6
 if(a[i]>0){
                if(k!=-1) {
                    cout<<"summa 1-h polojit ilem = "<<a[k]+a[i]<<endl;
                    break;
                }
                else k=i;
этот кусок говарит: если i-й элемент массива положительный и мы уже нашли один положительный элемент массива стоящий раньше i-го то вывести их сумму и выходим из цикла, иначе i-й элемент это 1-й встретившийся положительный и k=i
Ev_Hyper
Заблокирован
25.03.2014, 12:27     Прокомментировать код #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ильгиз96,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
        int k=-1;//присваиваем k число, которое точно, не является индексом массива
        for (int i=0; i<n; i++) {//перебо значений
            if(a[i]>0){//если элемент положительный
                if(k!=-1) {//если совпадение не первое
                    //в k теперь хранится индекс первого положительного
                    //выводим сумму текущего элемента и первого
                    cout<<"summa 1-h polojit ilem = "<<a[k]+a[i]<<endl;
                    //выходим из цикла
                    break;
                }
                else k=i; //иначе
            }
        }
ValeryS
Модератор
6516 / 4982 / 460
Регистрация: 14.02.2011
Сообщений: 16,504
25.03.2014, 12:35     Прокомментировать код #8
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
break;
а это зачем?
выскочит после первой же суммы
хотя задачу бы услышать

Добавлено через 1 минуту
Цитата Сообщение от Cryptoff Посмотреть сообщение
, и не изменяется в ходе выполнения цикла.
а это что?
Цитата Сообщение от Ильгиз96 Посмотреть сообщение
else k=i;
Arigato
Программист
280 / 177 / 95
Регистрация: 05.12.2013
Сообщений: 667
Записей в блоге: 5
25.03.2014, 12:44     Прокомментировать код #9
Цитата Сообщение от ValeryS Посмотреть сообщение
задачу бы услышать
Судя по коду - найти сумму двух первых положительных элементов массива.
Ev_Hyper
Заблокирован
25.03.2014, 12:49     Прокомментировать код #10
Цитата Сообщение от ValeryS Посмотреть сообщение
а это зачем?
выскочит после первой же суммы
так и нужно - сумма первых двух положительных элементов

Добавлено через 35 секунд
Последний пост не заметил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 20:10     Прокомментировать код
Еще ссылки по теме:

C++ Прокомментировать код
C++ Прокомментировать код
C++ Прокомментировать код
C++ Прокомментировать код
Прокомментировать код C++

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

Или воспользуйтесь поиском по форуму:
Cryptoff
9 / 9 / 1
Регистрация: 18.06.2013
Сообщений: 119
25.03.2014, 20:10     Прокомментировать код #11
Цитата Сообщение от Arigato_RU Посмотреть сообщение
Судя по коду - найти сумму двух первых положительных элементов массива.
Нечего решать, если ничего не сказано!
Yandex
Объявления
25.03.2014, 20:10     Прокомментировать код
Ответ Создать тему
Опции темы

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