16.01.2011, 20:09. Просмотров 820. Ответов 2
Доброго времени суток

Задача такая:"Напишите программу,которая находит и отображает значения дубликаты(одинаковые) в 5-элементном массиве целочисленных значений.Все значения должны будут вводиться с клавиатуры!!!"
Вот код программы,проверьте пожалуйста и подскажите если что не так,всё работает(тестировал, вроде находит любые числа одинаковые),но подозреваю что код может быть корявым.
Код
// Тренировка.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int mas[5],x=0,*p,y=0,m; //Объявление
cout<<"Введите 5 символов:\n";
while(x<5){ //Вводим 5 чисел
cin>>mas[x]; //
x++; //счётчик цикла
}
cout<<"\n";
for(int i=0;i<5;i++) //Выводим результат введённых чисел на экран
cout<<mas[i]<<' '; //
cout<<"\n\n\n"; //
p=mas; //Переменной *p присваиваем адрес первого индекса массива
while (y<5){ //Цикл для того чтобы проиндексировать указатель
for(m=0;m<5;m++){ //Цикл для того чтобы проиндексировать массив
if (m==y) continue; //Чтобы не сравнивались одинаковые элементы массива(т.е. mas[0] всегда равно p[0])!!!
if (mas[m]==p[y]){ //Сравнение введённых чисел
cout<<"Число "<<mas[m]<<" повторяеться"<<"\n"; //Вывод на экран повторяющегося числа
y=6; //Чтобы оборвать цикл while(y<5).Без этого верхняя строка (cout<<"Это....;) повторяеться 2 раза так как находит одинаковые числа 2 раза и более
break;
}
}
y++; //Индексируем указатель
}
system("pause");
return 0;
}
Много лишних библиотек,не обращайте внимания.
Очень бы хотелось услышать другие варианты решения этой задачи.Для меня очень сложно было организовать сравнения чисел.
Добавлено через 1 час 12 минут
Ребят я понимаю может сильно нупская программа,но мне не с кем посоветоваться я самоучка,вы хоть помогите.