Odpowiedź:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main() {
std::string word; //zmienna do przechowywania slowa
std::cout << "Podaj ciag znakow\n";
std::cin >> word; //wprowadzamy slowo do sprawdzenia
std::vector<int> numbers; //wektor do przechowywania liczb spelniajacych wymagania
int tmpNumber = 0; //zmienna tymczasowa, do przechowywania tworzenia sie numeru
int counter = 0; //licznik ile cyfr ma ta liczba
for (int i = 0; i < word.length(); i++) { //petla po znakach slowa
if (std::isdigit(word[i]) && counter <= 3) { //jesli spelnia wymagania to tworzymy ten numer
tmpNumber = tmpNumber * 10 + (word[i] - '0');
counter++;
}
if (std::isalpha(word[i]) || counter > 3 || word[i + 1] == '\0') {//jesli nie to zerujemy i dodajemy utworzony numer do wektora
numbers.push_back(tmpNumber);
tmpNumber = 0;
counter = 0;
int maxElement = *max_element(numbers.begin(), numbers.end());
std::cout << "Najwieksza liczba we wprowadzonym ciagu spelniajaca wymagania to: " << maxElement; //wyswietlamy maksymalny element wektora
return 0;
Wyjaśnienie:
Pewnie ta się jakoś lepiej, ale na taki pomysł wpadłem. Jak coś niejasne to pytaj :)
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Odpowiedź:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main() {
std::string word; //zmienna do przechowywania slowa
std::cout << "Podaj ciag znakow\n";
std::cin >> word; //wprowadzamy slowo do sprawdzenia
std::vector<int> numbers; //wektor do przechowywania liczb spelniajacych wymagania
int tmpNumber = 0; //zmienna tymczasowa, do przechowywania tworzenia sie numeru
int counter = 0; //licznik ile cyfr ma ta liczba
for (int i = 0; i < word.length(); i++) { //petla po znakach slowa
if (std::isdigit(word[i]) && counter <= 3) { //jesli spelnia wymagania to tworzymy ten numer
tmpNumber = tmpNumber * 10 + (word[i] - '0');
counter++;
}
if (std::isalpha(word[i]) || counter > 3 || word[i + 1] == '\0') {//jesli nie to zerujemy i dodajemy utworzony numer do wektora
numbers.push_back(tmpNumber);
tmpNumber = 0;
counter = 0;
}
}
int maxElement = *max_element(numbers.begin(), numbers.end());
std::cout << "Najwieksza liczba we wprowadzonym ciagu spelniajaca wymagania to: " << maxElement; //wyswietlamy maksymalny element wektora
return 0;
}
Wyjaśnienie:
Pewnie ta się jakoś lepiej, ale na taki pomysł wpadłem. Jak coś niejasne to pytaj :)