Премини към съдържанието

Препоръчан отговор


Здравейте, затънах на реферата по програмиране...

Да се състави програма, която намира най - голямата цифра в зададено цяло число. (ТАЗИ Я РЕШИХ И ДО ТАМ)

Зададен е едномерен масив от цели числа A0, A1,.......,An-1. Да се състави програма, която създава нов масив a0, a1,.....,an-1, като стойността на ai е равна на броя на нечетните цифри на Ai.

Даден е двумерен масив A с м реда и n стълба. Да се състави програма, която създава нов масив a0, a1,....,am-1, като стойността на ai е равна на броя на отрицателните елементи в i-тия ред.

Моля помагайте....

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

#include <iostream>
#include <vector>
using namespace std;

int countOddDigits(int n)
{
	int count = 0;
	while (n != 0)
	{
		if (n % 10 % 2 != 0) count++;
		n = n / 10;
	}
	return count;
}


int main()
{
	int n;
	cout << "n = ";
	cin >> n;
	vector <int> A(n);
	vector <int> a(n);
	int i;
	for (i = 0; i < n; i++)
	{
		cout << "A[" << i << "] = ";
		cin >> A[i];
		a[i] = countOddDigits(A[i]);
	}
	cout << endl;
	for (i = 0; i < n; i++)
	{
		cout << "a[" << i << "] = " << a[i] << endl;
	}
	return 0;
}
                                                   
                                                   


#include <iostream>
#include <vector>
using namespace std;


int main()
{
	int m, n;
	cout << "m = ";
	cin >> m;
	cout << "n = ";
	cin >> n;
	int i, j;
	int temp;
	vector <vector <int>> A(m);
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			cout << "A[" << i << "][" << j << "] = ";
			cin >> temp;
			A[i].push_back(temp);
		}
	}
	vector <int> a(m);
	int count;
	for (i = 0; i < m; i++)
	{
		count = 0;
		for (j = 0; j < n; j++)
		{
			if (A[i][j] < 0) count++;
		}
		a[i] = count;
	}
	cout << endl;
	for (i = 0; i < m; i++)
	{
		cout << "a[" << i << "] = " << a[i] << endl;
	}
	return 0;
}

 

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Благодаря много!

Само ако може да те попитам, ако заместя int main() с void main() и добавя #include <conio.h> и накрая _getch() и да добавя #include <stdlib.h> и system ("chcp 1251" ще объркам ли нещо. И ако може алгоритъма иначе няма да го зачетат :(

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 1 минута, Bojidar Velinov написа:

Благодаря много!

Само ако може да те попитам, ако заместя int main() с void main() и добавя #include <conio.h> и накрая _getch() и да добавя #include <stdlib.h> и system ("chcp 1251" ще объркам ли нещо. И ако може алгоритъма иначе няма да го зачетат :(

Няма смисъл, щото сичко е на латиница. Кодепейджите ти трябват като пишеш на кирилица.

Нямам време, да пиша алгоритмите, самолета ще изтърва. Е, накарай Флопито или Жоро.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
току-що, Реджеп Иведик написа:

Няма смисъл, щото сичко е на латиница. Кодепейджите ти трябват като пишеш на кирилица.

Нямам време, да пиша алгоритмите, самолета ще изтърва. Е, накарай Флопито или Жоро.

Добре, благодаря много!!! ^^


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 58 минути, Реджеп Иведик написа:

		if (n % 10 % 2 != 0) count++;

 

:lol6:

  • Харесва ми 4

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

 if (n%2) count++;

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

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

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

  • Горещи теми в момента

  • Подобни теми

    • от and!
      Здравейте, тази година ще завършвам и ми предстои кандидатстване. Ориентирал съм се към IT сферата/програмирането и ми е трудно да избера университет. Спрял съм се на Нов Български Университет със специалност Информатика и на ФМИ-Софийски Университет със специалност Компютърни Науки или Софтуерно Инженерство. Лично аз предпочитам НБУ, защото мисля, че е модерен и либерален университет с добра материална база, мога да завърша и втора специалност, има шанс да взема пълна стипендия (поне за първата година) и университетът ми харесва като цяло. Чувал съм и лоши неща от вида, че там може да завършиш и без да учиш (това не ме касае много, тъй като аз съм решен да уча). Цените също не ми харесват, но както казах се стремя към стипендия. А за СУ мисля, че е най-престижният университет в България. Притеснява ме, дали в НБУ ще получа добро образование и подготовка в тази специалност.
      МОЛЯ всеки, който има някакво мнение за НБУ, за СУ и за тази тема като цяло да се включи! Може да ми препоръчате и други университети с тези специалности.
      Благодаря за помощта!
    • от Chris Panov
      Здравейте, 
      В момента пиша една програма, в която в една от функциите ми се налага да излезна по-рано при определено условие. Функцията връща string впрочем.
      Ето кодът:
       
      #include "stdafx.h" #include <iostream> #include <string> #include <sstream> #include <vector> #define CONSOLE_LOG(x) std::cout << x #define COMMAND_END command[0] #define COMMAND_SUM command[1] #define COMMAND_SUBTRACT command[2] #define COMMAND_CONCAT command[3] #define COMMAND_DISCARD command[4] #define COMMAND_DISPSEQ command[5] template <typename T> void top_back(std::vector<T>& v) {     v.erase(v.end() - 1); } std::string sum(std::string& x, std::string& y, std::vector<std::string>& vec) {     int xInt = atoi(x.c_str());     int yInt = atoi(y.c_str());     int result = xInt + yInt;     std::ostringstream os;     std::string strResult;     os << result;     strResult = os.str();     top_back(vec);     top_back(vec);     return strResult; } std::string subtract(std::string& x, std::string& y, std::vector<std::string>& vec) {     int xInt = atoi(x.c_str());     int yInt = atoi(y.c_str());     int result = xInt - yInt;     std::ostringstream os;     std::string strResult;     os << result;     strResult = os.str();     top_back(vec);     top_back(vec);     return strResult; } std::string concat(std::string& x, std::string& y, std::vector<std::string>& vec) {     if (atoi(x.c_str()) < 0)     {         return;     }     else {         std::string concatStr = y + x;         top_back(vec);         top_back(vec);         return concatStr;     } } void dispseq(std::vector<std::string>& vec) {     std::vector<std::string>::const_iterator iter;     for (iter = vec.begin(); iter != vec.end(); iter++)     {         std::cout << *iter << std::endl;     } } void enterSequence() {     std::vector<std::string> command =     {         "end",         "sum",         "subtract",         "concat",         "discard",         "dispseq"     };     std::vector<std::string> sequence;     std::string input;     std::string a;     std::string b;     do     {         std::cin >> input;         sequence.emplace_back(input);         if (input == COMMAND_END)         {              top_back(sequence);         }         if (input == COMMAND_SUM)         {             top_back(sequence);             a = sequence[sequence.size() - 1];             b = sequence[sequence.size() - 2];             sequence.emplace_back(sum(a, b, sequence));         }         if (input == COMMAND_SUBTRACT)         {             top_back(sequence);             a = sequence[sequence.size() - 1];             b = sequence[sequence.size() - 2];             sequence.emplace_back(subtract(a, b, sequence));         }         if (input == COMMAND_CONCAT)         {             top_back(sequence);             a = sequence[sequence.size() - 1];             b = sequence[sequence.size() - 2];             sequence.emplace_back(concat(a, b, sequence));         }         if (input == COMMAND_DISCARD)         {             top_back(sequence);             top_back(sequence);         }         if (input == COMMAND_DISPSEQ)         {             top_back(sequence);             dispseq(sequence);         }     } while (input != COMMAND_END); } int main() {     enterSequence();     std::cin.get();     std::cin.get();     return 0; } И ето проблемната функция:
       
      std::string concat(std::string& x, std::string& y, std::vector<std::string>& vec) {     if (atoi(x.c_str()) < 0)     {         return;     }     else {         std::string concatStr = y + x;         top_back(vec);         top_back(vec);         return concatStr;     } }  
      Както виждате ако стрингът x(който естествено го превръщам в интиджър) е по-малък от 0, теоритично трябва да излезна от функцията, и това е единственият начин за който се сетих, с return;, обаче пък компилаторът иска функцията да връща стойност, понеже е от тип стринг.
      Как да съчетая двете? - да връща стринг ако всичко е по план, и да излиза ако е по-малко от 0.
    • от Chris Panov
      Здравейте,
      В момента имам сериозен проблем със взимането на броят на елементи в даден вектор.
      vec.size(); и  
      sizeof(vec) / sizeof(vec[0]); не работят. Програмата те пита за брой ключове за даден тест, въвеждаш ключовете, после въвеждаш и отговорите, които са били дадени, и програмата ги сравнява и в зависимост от това колко верни отговори имаш ти дава точки. Ключовете и дадените отговори са тип char. ("A", "B", "C" etc.)
      Ето го и кода, като повечето съм го направил на коментар за да си тествам само функцията която извежда броя на елементите.
      #include "stdafx.h" #include <iostream> #include <vector> #define CONSOLE_LOG(x) std::cout << x; std::vector<char> keys = {'A', 'B', 'C', 'D', 'E'}; std::vector<char> studentAnswers; int n, points = 0; char key, answer; template <typename T> T vecSize(std::vector<T>& vec) { T size = vec.size(); return size; } /* template <typename T1> void enterKeys(std::vector<T1>& k) { CONSOLE_LOG("Please enter the number of keys: "); std::cin >> n; for (int i = 0, counter = 1; i < n, counter <= n; i++, counter++) { CONSOLE_LOG("Key " << counter << ": "); std::cin >> key; k.emplace_back(key); } } template <typename T2> void enterAnswers(std::vector<T2>& stAns) { for (int i = 0, counter = 1; i < n, counter <= n; i++, counter++) { CONSOLE_LOG("Answer " << counter << ": "); std::cin >> answer; stAns.emplace_back(answer); } } template <typename T3> void getGrade(std::vector<T3>& x, std::vector<T3>& y) { for (int i = 0; i < n; i++) { if (x[i] == y[i]) { points++; } } CONSOLE_LOG("Points: " << points); } */ int main() { /* enterKeys(keys); enterAnswers(studentAnswers); getGrade(studentAnswers, keys); */ std::cout << keys.size() << std::endl; std::cout << vecSize(keys) << std::endl; std::cin.get(); std::cin.get(); std::cin.get(); return 0; } Опитах всевъзможни начини, и пак не става. Идеята е да заместя n променливата със броя на елементите от вектора. Програмата върви по един и същи начин, защото все пак в n променливата запазваме големината на вектора, но бих искал да си го направя с функция.
      Както виждате на края на програмата си извеждам тестове. Първият, който си е по конвенционалният метод си работи сам по себе си, но пък във for цикъл не бачка.
      А вторият е функцията която съм направил. Проблемът е че ми извежда непознат символ - "�"
      Проблемът е че типът на елементите във вектора е char, защото като го направих с int тип си работеше както трябва.
      Бих бил изключително благодарен ако някой може да ме насочи и да ми бутне едно рамо :)
    • от Goshko
      Да се напише програма, която създава структура "Book" като имате следните полета - Title(заглавието на книгата), Автор(Author), Цена(Price) и уникален номер на книгата(ISBN-num). Да се ваведе цяло число n и след него n на брой данни за ученика. Да се изведе на монитора данните за книгата с цена по-висока от предварително зададена.
    • от Нели Николова
      Здравейте, имам две готови задачи, но не мога да ги компилирам. Дали може да ги проверите?
      зад.1 Да се състави програма, която да сортира едномерен масив от цели числа тип short  с име X състоящ се от 19 елемента. Сортирането да се извърши във възходящ ред чрез метода пряка селекция.
      #include <iostream>
      using namespace std;
      void sortAsc(short[]);
      int main() {
          short x[] = {123,13,23,31,1,55,36,17,8,9,10,11,6,12,14,15,16,35,184,19};
           
          sortAsc(x);
          
          return 0;
      }
      void sortAsc(short x[]){
          for(short i = 0; i < 19 ; i++) {
              for(short j = i; j < 19; j++) {
                  if(x[j] < x) {
                      swap(x[j], x);
                  }
              }    
          }
          
          for(int i=0; i<19; i++)
          {
              cout << x << endl;
          }
      }
      зад. 2 Да се състави програма,която реализира динамичен стек от реални числа тип float. Стекът да се преобразува в два нови стека, един стек P за четните и един стек O за нечетните числа от стек едно. Стековете да се извеждат на екрана.
      int main() {
          stack<float>numbers;
          stack<float>p;
          stack<float>o;
          
          for(short i = 1; i <= 200; i++) {
              numbers.push(i);
          }  
          
          numbers.push(200.64);
          numbers.push(203.34);
          
          while(!numbers.empty()) {
              int number = numbers.top();
              
              if (number % 2 == 0) {
                  p.push(number);
              } else {
                  o.push(number);
              }
              numbers.pop();
          }
          
          cout << "EVEN NUMBERS:" << endl;
          
          while(!p.empty()) {
              cout << p.top() << endl;
              p.pop();
          }
          
          cout << "ODD NUMBERS:" << endl;
          
          while(!o.empty()) {
              cout << o.top() << endl;
              o.pop();
          }
          
      }
      Много Ви благодаря :)
       
  • Дарение

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.