Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 11:49   #1
ATNC
 
Регистрация: 18.03.2011
Сообщений: 6
По умолчанию Масив. Сортировка одинаковых.

Доброго времени суток.
Есть массив из 10 чисел, который получается с помощью счетчика псевдослучайных чисел. Нужно найти суму одинаковых позитивных элементов массива.
Помогите пожалуйста с корректировкой кода. Как сделать чтобы считало суму одинаковых, а не всю?
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{clrscr();
int i,j,ARR[10],s=0,temp;
randomize();
printf("MASSIV CHISEL:\n");
for(i=0;i<10;i++)
	{ARR[i]=random(25)-5;printf("ARR[%i]=%i\n",i,ARR[i]);}
printf("\nMASSIV OTSORT PO UBUVANNJU\n");
for(i=0;i<10;i++)
	{for(j=0;j<9-i;j++)
	{if(ARR[j]<ARR[j+1])
	{temp=ARR[j];
	ARR[j]=ARR[j+1];
	ARR[j+1]=temp;}}
	}
for(i=0;i<10;i++)printf("ARR[%i]=%i\n",i,ARR[i]);

for(i=0;i<10;i++)          /*syma */
       {for(j=0;j<9-i;j++)
	if(ARR[i]!=ARR[j+1]){s=s+ARR[j+1];}}
printf("Syma odnakovih =%i",s);
getch();
return 0;
}

Последний раз редактировалось ATNC; 13.04.2012 в 12:58.
ATNC вне форума Ответить с цитированием
Старый 13.04.2012, 18:58   #2
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Я не очень понял задачу. Если допустим есть две пары одинаковых чисел. То как нужно их суммировать?
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 13.04.2012, 20:59   #3
ATNC
 
Регистрация: 18.03.2011
Сообщений: 6
Восклицание

Цитата:
Сообщение от Парсифаль Посмотреть сообщение
Я не очень понял задачу. Если допустим есть две пары одинаковых чисел. То как нужно их суммировать?
Например есть массив из 10 чисел:

1 2 3 4 5 1 2 1 4 5

нужно суммировать одинаковые числа. В моем примере сума будет=
(1+1+1)+(2+2)+(4+4)+(5+5)=25. Тоисть, если есть хотя бы 2 одинаковых числа, их нужно суммировать.
ATNC вне форума Ответить с цитированием
Старый 13.04.2012, 21:01   #4
vitali0
 
Регистрация: 27.09.2010
Сообщений: 5
По умолчанию

Если я правильно понял, что тебе нужно, то вот код:
Код:
int sum = 0, k = 0;
for (int i = 0; i < 10; i++) {
	k = ARR[i];
	int j = 0;
	for (j = i+1; j < 10; j++) {
		if (ARR[i] == ARR[j])
			k += ARR[i];
		else break;
	}
	if (k != ARR[i]) 
			sum += k;
	i = j-1;
}
только он этот код работает только с отсортированным по возрастанию массивом

Последний раз редактировалось vitali0; 13.04.2012 в 21:45.
vitali0 вне форума Ответить с цитированием
Старый 16.04.2012, 10:47   #5
ATNC
 
Регистрация: 18.03.2011
Сообщений: 6
По умолчанию

Спасибо огромное!
ATNC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масив INshadow Помощь студентам 3 11.06.2012 14:34
Дан целочисленный массив размера N, содержащий ровно два одинаковых элемента. Найти номера одинаковых элементов и вывести эти номе Alexar Makken Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2011 22:07
Сортировка массива с исключением одинаковых чисел. A-IX-2 Общие вопросы Delphi 3 17.03.2011 00:22
Масив MyST1caL Общие вопросы Delphi 1 20.01.2010 23:06