19.09.2008, 03:15
общий
это ответ
Здравствуйте, Нюров Алесандр Сергеевич!
Код С++ программы с комментариями в приложении. Скомпилировано в MS Visual Studio 2005.
Суть решения (насколько правильно я понял условие задачи):
Если Вы ввели массив из N разных елементов, то количество соседей разных элементов, т.е. пар разных элементов будет N - 1, т.е. если Вы ввели в массив 17 разных элементов, то таких "соседей" будет 16.
Например вводим: 1 2 3 4 5 - здесь пар разных элементов будет 4 - 1 и 2, 2 и 3, 3 и 4, 4 и 5. А если ввести 1 2 3 3 5 - соответственно здесь будет три пары разных элементов.
В программе, с помощью цикла происходит сравнение двух соседних элементов. Т.е. если i - тый элемент не равный своему i + 1 - ому, значит они разные и следовательно инкрементируем переменную k_vo, в которой сохраняется значение количества и переходим к следуюющей итерации цикла.
for(int i = 0; i < size; i++)
{
if(mas[i] != mas[i + 1]) k_vo++; continue;
}
Будут какие-либо вопросы по коду - обращайтесь в мини-форум вопроса.
Приложение:
//Заголовок потокового ввода/вывода
#include <iostream>
//Заголовок манипуляторов ввода/вывода
#include <iomanip>
using namespace std;
int main()
{
//Объявляем массив целых чисел на 10 элементов;
int mas[100];
//Объявляем переменную размерности
int size = 0;
//Приглашение ввести значение размерности
cout << "Vvedyte razmernost' masyva: ";
do
{
//Ввод значения размерности
cin >> size;
if(size <= 1)
{
cout << endl << "Vvedyte razmernost' bol'she 1: ";
}
}
while(size <= 1);
cout << endl;
for(int i = 0; i < size; i++)
{
cout << " el.of mas[" << i << "]: ";
cin >> mas[i];
}
cout << endl << " Nachalnuy masyv: " << endl << endl;
//Вывод массива на экран
for(int i = 0; i < size; i++)
{
cout << " " << mas[i] << setw(3);
}
//Объявляем переменную количества
int k_vo = 0;
//Цикл, в котором происходит сравнение двух соседних элементов
for(int i = 0; i < size; i++)
{
if(mas[i] != mas[i + 1]) k_vo++; continue;
}
//Вывод значения количества на экран
cout << endl << endl << "Kolychestvo sosedov raznyh elementov massyva: " << (k_vo - 1) << endl << endl;
return 0;
}