Форум

Data.BG Форуми: задача C++ с функция main() - Data.BG Форуми

Прехвърляне към съдържание

Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

задача C++ с функция main()

#1
Потребителят е неактивен   icemenn 

  • Група: Потребители
  • Мнения: 139
  • Регистриран: 13-June 05
  • Репутация: 0
  • Пол:Мъж
  • Град:Варна
едната задача я реших без проблем,но нямам пример за тази задача и не мога да черпя идеи от никъде(не намерих такава задача в нета)
Съставете програма с функция main() и избор чрез меню на функции за:
а)Въвеждане от клавиатура или чрез генератор на случайни числа на поредица от N (до 30) трицифрени цели положителни числа и съхраняването им в едномерен числов масив
б)Извеждане на най-често срещаната цифра в числата от поредицата.
в)презаписване в нов масив,така че в началото да са нечетните ,а след тях четните числа в реда на тяхното въвеждане и извеждане на двата масива на екрана
г)презаписване на масива с генерираните числа в нов масив,сортиран във възходящ ред и извеждане на двата масива на екран със съответен текст.

знам че дълга но моля ако можете да помогнете поне с някакъв готов материал с подобна задача

Мнението беше редактирано от icemenn: 02.06.09 - 21:43

0

#2
Потребителят е неактивен   georgedimov 

  • Група: Потребители
  • Мнения: 5330
  • Регистриран: 26-May 03
  • Репутация: 61
  • Пол:Мъж
  • Град:Велико Търново
Айде влачи в)
// Dev-C++ 4.9.9.2
using namespace std;
#include <iostream>

unsigned original_3digits_array[] = { 345, 456, 789, 234, 678, 567, 123 };
unsigned count_of_original = sizeof(original_3digits_array) / sizeof(unsigned);

void first_odds_than_evens(unsigned an_array[], unsigned members)
{
 unsigned i, j, k, *pu;
  
	 pu = new unsigned [members];
	 
	 for (i = 0, j = 0; i < members; i++)
	 {
		 k = an_array[i]; 
		 if (k % 2)
			pu[j++] = k;
	 }

	 for (i = 0/* , j = 0 */; i < members; i++)
	 {
		 k = an_array[i]; 
		 if (!(k % 2))
			pu[j++] = k;
	 }

	 cout << "\n\nOriginal array is\n"; 
	 for (i = 0/* , j = 0 */; i < members; i++)
		 cout << an_array[i] << " ";

	 cout << "\n\nFirst odds array is\n"; 
	 for (i = 0/* , j = 0 */; i < members; i++)
		 cout << pu[i] << " ";
	 
	 cout << endl;
	 delete [] pu;
}

main()
{
	  first_odds_than_evens(original_3digits_array, count_of_original);
		   
	  system("Pause");
	  return 0;
}
Че то ще забравите и да унищожите новия масив :lol:

Мнението беше редактирано от georgedimov: 04.06.09 - 00:56

0

#3
Потребителят е неактивен   icemenn 

  • Група: Потребители
  • Мнения: 139
  • Регистриран: 13-June 05
  • Репутация: 0
  • Пол:Мъж
  • Град:Варна
мерси пич всичките вече ги оправих и с твоя помощ без б)
0

#4
Потребителят е неактивен   georgedimov 

  • Група: Потребители
  • Мнения: 5330
  • Регистриран: 26-May 03
  • Репутация: 61
  • Пол:Мъж
  • Град:Велико Търново
Влачи и г), ама специалистите (даскалиците) щели да кажат нещо...
Аз така сортирам тризначни числа
// Dev-C++ 4.9.9.2
using namespace std;
#include <iostream>

unsigned original_3digits_array[] = { 345, 456, 789, 234, 678, 567, 123 };
unsigned count_of_original = sizeof(original_3digits_array) / sizeof(unsigned);


void sort_in_accesing_order_3digits_array(unsigned an_array[], unsigned members)
{
 unsigned i, j, k, *pu;
 unsigned pc[1000];
  
	 pu = new unsigned [members];
	 
	 for (j = 100; j < 1000; pc[j++] = 0)
	;

	 for (i = 0; i < members; pc[an_array[i++]]++)
	; 

	 for (j = 100, i = 0; j < 1000; j++)
	 {
		 k = pc[j];
		 while (k--)
			pu[i++] = j;
	 }
	 
	 cout << "\n\nOriginal array is\n"; 
	 for (i = 0/* , j = 0 */; i < members; i++)
		 cout << an_array[i] << " ";

	 cout << "\n\nSorted array is\n"; 
	 for (i = 0/* , j = 0 */; i < members; i++)
		 cout << pu[i] << " ";
	 
	 cout << endl;
	 delete [] pu;
}

main()
{
	  sort_in_accesing_order_3digits_array(original_3digits_array,
 count_of_original);
		   
	  system("Pause");
	  return 0;
}

Мнението беше редактирано от georgedimov: 04.06.09 - 02:49

0

#5
Потребителят е неактивен   georgedimov 

  • Група: Потребители
  • Мнения: 5330
  • Регистриран: 26-May 03
  • Репутация: 61
  • Пол:Мъж
  • Град:Велико Търново

Преглед на мнениеicemenn, на Jun 4 2009, 01:33, каза:

мерси пич всичките вече ги оправих и с твоя помощ без б)

Ми тя иска масив от 10 брояча за съответните цифри (тамам диапазона [0..9] е подходящ за индекси), нулираш него и текущата променлива за макса и ги почваш по модул 10, запис в брояча, проверка с макса (евентуалната му замяна), изваждане, делене на 10...
После един прост цикъл и извеждаш само тия цифри, броят на които съвпадат с макса, а ако искат и него :lol:

Мнението беше редактирано от georgedimov: 04.06.09 - 06:23

0

#6
Потребителят е неактивен   nisanx 

  • Група: Потребители
  • Мнения: 1
  • Регистриран: 01-November 18
  • Репутация: 0
  • Пол:Мъж
  • Град:София
Как мога да слея (в) под точка със (г)под точка без да променям много кодовете и да ми се получат двете програмки в 1 програмка !След което като отворя програмата да ми изведе двата кода един под друг! Като първо (в) под точка и после (г) под точка.
0

#7
Потребителят е неактивен   georgedimov 

  • Група: Потребители
  • Мнения: 5330
  • Регистриран: 26-May 03
  • Репутация: 61
  • Пол:Мъж
  • Град:Велико Търново

Преглед на мнениеnisanx, на 01.11.18 - 19:33, каза:

Как мога да слея (в) под точка със (г)под точка без да променям много кодовете и да ми се получат двете програмки в 1 програмка !След което като отворя програмата да ми изведе двата кода един под друг! Като първо (в) под точка и после (г) под точка.

Ми може и така:
// Dev-C++ 5.7.1 (Orwell)
using namespace std;	// may be here
#include <iostream>	// for general purpose
//#include <cstdlib>	// for system()


unsigned original_3digits_array[] = { 345, 456, 789, 234, 678, 567, 123, 244, 543, 645,
				111, 222, 333, 444, 555, 666, 777, 888, 999, 987 };
unsigned count_of_original = sizeof(original_3digits_array) / sizeof(unsigned);

void first_odds_than_evens(unsigned an_array[], unsigned members)
{
 unsigned i, j, k, *pu;
  
         pu = new unsigned [members];
         
         for (i = 0, j = 0; i < members; i++)
         {
                 k = an_array[i]; 
                 if (k % 2)
                        pu[j++] = k;
         }

         for (i = 0/* , j = 0 */; i < members; i++)
         {
                 k = an_array[i]; 
                 if (!(k % 2))
                        pu[j++] = k;
         }

         cout << "\n\nOriginal array is\n"; 
         for (i = 0/* , j = 0 */; i < members; i++)
                 cout << an_array[i] << " ";

         cout << "\n\nFirst odds array is\n"; 
         for (i = 0/* , j = 0 */; i < members; i++)
                 cout << pu[i] << " ";
         
         cout << endl;
         delete [] pu;
}

void sort_in_ascending_order_3digits_array(unsigned an_array[], unsigned members)
{
 unsigned i, j, k, *pu;
 unsigned pc[1000];
  
         pu = new unsigned [members];
         
         for (j = 100; j < 1000; pc[j++] = 0)
        ;

         for (i = 0; i < members; pc[an_array[i++]]++)
        ; 

         for (j = 100, i = 0; j < 1000; j++)
         {
                 k = pc[j];
                 while (k--)
                        pu[i++] = j;
         }
         
         cout << "\n\nOriginal array is\n"; 
         for (i = 0/* , j = 0 */; i < members; i++)
                 cout << an_array[i] << " ";

         cout << "\n\nSorted ascending array is\n"; 
         for (i = 0/* , j = 0 */; i < members; i++)
                 cout << pu[i] << " ";
         
         cout << endl;
         delete [] pu;
}

main()	// int main(int argc, char *argv[])
{
          first_odds_than_evens(original_3digits_array, count_of_original);
          sort_in_ascending_order_3digits_array(original_3digits_array,
 count_of_original);
                   
//          system("Pause");
          return 0;
}


По принцип мога да го напиша и по-простичко, ама явно съм се подигравал на времето с даскалите :)

Мнението беше редактирано от georgedimov: 03.11.18 - 15:43

0

Споделете тази тема чрез:


Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login