Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Спещна помощ за Borland C++

Featured Replies

Трябва ми спешна помощ за няколко задачи на Dev-C++

:speak:

1. Да се напише функция която намира броя на трицифрените числа сумата на които е n.

n - се задава от клавиатурата

2. Даден е масив от цели числа. Да се състави и изведе друг масив съдържащ индексите на елементите които се срещат поне 2 пъти.

!!!благодаря предварително!!!

Редактирано от Mr_FunkyMan (преглед на промените)

  • Администратор

Последно за Borland C++ или за Dev-C++ говорим, компилаторите са различни?

1 ти е един цикъл от 100 до 999, разбираш числото на стотици, десетици и единици ( чрез целочислено делене и остатък от него ) и събираш :wors:

2 пак ти е един цикъл през масива :angry:

Втората ти програма представлява нещо подобно:

#include <iostream>

int main()

{

 int A[100], k;

 int B[100];


do {

 cout<<"Колко елемента искате да има масива> ";

  cin>>k;

} while((k<0)&&(K<101));


 for(int i=0; i<k; i++)

 {

  cout<<"Въведете "<<i<<"-ят елемент на масива А> ";

  cin>>A[i];

  B[i]=0;

  C[i]=0;

 }


 for(int i=0; i<k; i++)

 {

  for(int j=0; j<k; j++)

  {

   if(A[i]==A[j])

	B[i]++;

  }

 }


  for(int i=0; i<k; i++)

  {

   if(B[i]>1)

	 cout<<"Елемент с индекс "<<i<<" се повтаря "<<B[i]<<" пъти";

  }


 return 0;

}

Алгоритъма е верен, но предполагам има синтактични грешки тук-там... Нямам нерви и време да компилирам. Другата програма е подобна. Седни и си я напиши сам :wors: Не мързелувай. Гледал съм да спазвам стандарта на C, но не съм писал програми от две години и половина, сиреч от както зарязах програмирането...

Айде дерзай, Arcopix

...

  for(int j=0; j<k; j++)

...
Алгоритъма е верен ...
Не искам да се бъркам, но алгоритъма НЕ е верен. Трябва да бъде:
...

  for(int j=i+1; j<k; j++)

...

, иначе всяко число се сравнява със себе си, плюс с вече отчетени негови повторения.

Не искам да се бъркам, но алгоритъма НЕ е верен. Трябва да бъде:

...

   for(int j=i+1; j<k; j++)

 ...

, иначе всяко число се сравнява със себе си, плюс с вече отчетени негови повторения.

Изключително съм съгласен, че всяко число се сравнява с всички останали, включително със себе си. Ако забележиш в матрица / масив В се съхранява колко пъти се среща тази стойност в цялата матрица А. Ако е единствен в А, то се среща веднъж, т.е. B=1 След това ако забелязваш има условен оператор относно B>1 т.е. трябва да е поне две за да го отпечата :)

ОК! За отпечатване е така, но условието е "да се състави и изведе" масив., т.е. към масив B трябва да се добавя елемент със стойност индекса, всеки път, когато се срещне повторение. В този случай трябва да се добави и проверка, дали елемента вече не е добавен към B.

@poisk Как ще стане с един цикъл през масива?

ОК! За отпечатване е така, но условието е "да се състави и изведе" масив., т.е. към масив B трябва да се добавя елемент със стойност индекса, всеки път, когато се срещне повторение. В този случай трябва да се добави и проверка, дали елемента вече не е добавен към B.

@poisk Как ще стане с един цикъл през масива?

Охххх щом толкова държиш при условният оператор ще dump-вам индексите на повтарящите се елементи:

 int t=0, C[100];

  for(int i=0; i<k; i++)

  {

   if(B[i]>1)

	{

		cout<<"Елемент с индекс "<<i<<" се повтаря "<<B[i]<<" пъти";

		 C[t]=i;

		   t++;

	}

  }

Така доволен ли си? В масив C се съдържат индексите на повтарящите се елементи :)

  • Администратор
@poisk Как ще стане с един цикъл през масива?

Ако A ни е масива, l = броя елементи в него:

std:map<int, int> counts;

for ( i = 0; i<l; ++i )

{

	counts[ A[i] ]++;

}

За да запишеш и индексите трябва само да усложните малко структурата counts :)

  • Автор

Много Благодаря на Acropix dmanov и poisk

много ми помогнахте за втората задача. :help:

Сядам да пиша първата.

Ако имам проблем с нея надявам се пак да ми помогнете

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.