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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2011, 22:32   #1
sheff123
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 21
По умолчанию C.Задача на поиск минимального вхождение числа.

Задан целочисленный массив размера N. Найти значение наименее часто встречающееся в массиве. Вывести на экран все позиции элементов содержащих это значение.
Написал код:
Код:

#include <stdio.h>
#include <locale.h>



int main(int argc, char *argv[])
{ setlocale(LC_ALL,"");
	printf("Введите размер массива:");
	int n;
	scanf("%d",&n);
	int array[n];
	int bar[100];
    for(int i=0;i<n;i++)
	{   printf("Вводите элементы массива[%d]:",i);
		scanf("%d",&array[i]);
	}
 int k=0;
	int b;
	int g;
	int c=1000;
	for(int i=0;i<n;i++)
    {b=array[i];
		
 
		
		for (int j=0;j<n;j++)
		{if (b==array[j]){k++;}
 
		
	
		}
	
		if (c>k) {c=k;  g=b;}
		k=0;

	}


for(int i=0;i<n;i++)
    {b=array[i];
		
 
		
		for (int j=0;j<n;j++)
		{if (b==array[j]){k++;}
 
		
	
		}
	
		if (c==k) {c=k;  g=b;
		for(int i=0;i<n;i++)
		{if (array[i]==g)
			{printf("Наименее встречающийся элемент %d\n",g);
				printf("Его позиции:%d\n",i);
			}
	
		}
	

	
}k=0;}


	

	





	
    return 0;
}
с выводом не хорошо. Например если в массив состоит из:
11 11 11 2 2 3 3 15 15 15
то минимальное кол-во вхождений здесь будет у чисел 2 и 3 по 2 раза. Счетчик с=2 .а выводит в printf 2^c а нужно вывести лишь наименее встречающиеся числа и порядковые номера для них 1 раз.



поправьте код)
sheff123 вне форума Ответить с цитированием
Старый 11.11.2011, 10:52   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Вы значение g выводите в цикле. Выводите перед циклом.
Код:
                       printf("Наименее встречающийся элемент %d\n",g);
		for(int i=0;i<n;i++)
		{if (array[i]==g)
			{
				printf("Его позиции:%d\n",i);
			}
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 11.11.2011, 16:58   #3
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Код:
	int array[n];
И компилятор не вознегодовал, увидев такое?
Son Of Pain вне форума Ответить с цитированием
Старый 11.11.2011, 17:35   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Код:
	int array[n];
И компилятор не вознегодовал, увидев такое?
новые версии компиляторов такое кушают -)
например, gcc 4.3.3 (стандартная установка Ubuntu)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 12.11.2011, 20:45   #5
sheff123
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Код:
	int array[n];
И компилятор не вознегодовал, увидев такое?
Так ведь же переменную n раньше объявил и записал её)
sheff123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на поиск минимального элемента в массиве 2517 Помощь студентам 12 30.06.2011 15:19
Поиск минимального элемента в stringgrid igabenu Общие вопросы Delphi 3 27.02.2011 19:03
Поиск минимального элемента в матрице F1eCSo Помощь студентам 0 04.02.2010 17:20
Представление минимального числа (Си) spirit_trapper Помощь студентам 6 22.12.2009 15:57
Проверить вхождение числа, по биту slips JavaScript, Ajax 3 28.08.2009 13:17