Created
October 21, 2013 12:49
-
-
Save spellancer/7083374 to your computer and use it in GitHub Desktop.
For Elena.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> //Подключение библиотеки ввода-вывода | |
#include <math.h> //Подключение доп.библиотеки с мат. функциями (для вызова fabs() - взятия модуля числа. | |
using namespace std; | |
int main() // функция, основная часть программы, где {} - тело функции | |
{ | |
int a,b,s,max=0,ii; // объявление вспомогательных переменных типа int | |
// где а и б хранят промежуточные значения, s - хранит сумму цифр текущего элемента массива | |
// max -- хранит максимальную сумму цифр | |
int x[7] = {12,1,3,4,-121,99,19}; // исходный массив (частный случай, массив из 7 элементов) | |
for (int i=0; i<7; i++) // Счетный (for) цикл обхода заданного массива, где i - индекс текущего элемента | |
{ | |
s=0; // В каждой итерации обнуляем счетчик суммы цифр (т.к. для каждого числа он свой, но всегда положительный) | |
b = x[i]; // Запоминаем текущий элемент в вспомогательной переменной, чтобы не изменить его в массиве. | |
while (b!=0) // пока наш элемент не равен нулю, считаем сумму цифр | |
{ | |
a = b % 10; // приравниваем а остаток от деления b (т.е. текущего элемента массива) на 10. | |
//cout << "Остаток от деления: " << a<<endl; // -----!!! Расскоментируй эту строку, чтобы понять, как мы считаем сумму цифр | |
s = s + a; // Накапливаем сумму цифр прибавляя каждый раз остаток | |
//cout << "Сумма цифр теперь равна:" << s << endl; // ------!!! И это расскоментируй. У тебя в паскале вывод будет Writeln(блаблабла) | |
b = b/10; // Делим число на 10, чтобы взять следующий | |
//cout << "Текущее число для подсчета: " << b << endl; // ----!!! И это тоже пожалуй. | |
} // Конец while | |
//cout << "Сумма цифр текущего элемента равна " << x[i] << ", равна: " << fabs(s) <<endl; // Проверка, можешь глянуть. | |
if (s>max) // В этом if (условном операторе) ищем максимальную сумму. | |
{ | |
max = s; // Если текущая сумма цифр больше предыдущей, то запоминаем текущую. | |
ii = i; // Запоминаем индекс текущего элемента с наибольшей суммой цифр, чтобы в дальнейшем поставить этот элемент на 1 место | |
} // Конец if | |
} // Конец цикла for | |
cout << "Макс: "<< max << "; по индексу: "<< ii<<endl; // Выводим в консоль элемент массива с макс. суммой цифр. и его индекс. | |
a = x[0]; // Запоминаем 1 элемент массива (в C++ нумерация элементов массива идет с 0, т.е. x[0] - Это 1 элемент) | |
x[0]=x[ii]; // Записываем в 1 элемент массива число с макс. суммой цифр | |
x[ii] = a; // Записываем на место того искомого числа, первый элемент массива | |
// Проверка. Вывод результата | |
for (int i=0; i<7; i++) // Цикл для вывода получившегося массива. | |
{ | |
cout << x[i] << " ; "; | |
}// Конец цикла | |
return 0; | |
}// Конец функции main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment