• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

cpp-liczby blizniacze

VPS Starter Arubacloud
0 głosów
2,766 wizyt
pytanie zadane 23 lutego 2017 w C i C++ przez Krystek102 Bywalec (2,440 p.)

Witam,mam mały problem z zadaniem 

Liczby bliźniacze to takie dwie liczby pierwsze, które różnią się o 2, np.: (3, 5),
(5, 3), (11, 13) lub (19, 17).
Zbadaj w pliku dane_6.txt kolejne pary sąsiadujących ze sobą liczby, tzn. pierwszą
i drugą liczbę, drugą i trzecią liczbę, …, przedostatnią i ostatnią liczbę. Podaj liczbę par liczb
bliźniaczych oraz wypisz wszystkie te pary. Każdą parę wypisz w osobnym wierszu

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

int main()
{
    int ile=0;
    int n[236];
    ifstream we("liczby_pierwsze.txt");
    ofstream wy("pary_blizniacze.txt");
    for(int i=0;i<236;i++)
    {


        we>>n[i];
        if(n[i]-n[i+1]==2|| n[i+1]-n[i]==2)
            
            
        {
              ile++;
            wy<<n[i]<<n[i+1]<<endl;
            
            
        }
          




    }
    cout<<ile<<endl;
    return 0;
}

 

 

Nie działą :(,Co robię źle??? Z góry dzięki za pomoc :) 

komentarz 23 lutego 2017 przez Rout Bywalec (2,350 p.)
Jak wygląda plik .txt ?
komentarz 23 lutego 2017 przez Krystek102 Bywalec (2,440 p.)
tu są już tylko liczby pierwsze,po zbadaniu
komentarz 23 lutego 2017 przez Rout Bywalec (2,350 p.)
Masz z pliku .txt w którym znajdują się liczby wybrać bliźniacze, tak? Jeżeli tak to pokaż składnie tego pliku txt

1 odpowiedź

+1 głos
odpowiedź 24 lutego 2017 przez koczurekk Gaduła (3,420 p.)

Po co Ci te tablice? I nie widzę w poleceniu informacji, że jest dokładnie 236 liczb. Ja to rozwiązałem tak:

#include <algorithm>
#include <iostream>
#include <cmath>

template<typename T>
T exchange(T& lhs, T& rhs) {
	auto tmp = lhs;
	lhs = rhs;

	return tmp;
}

int main() {
	size_t count {0u};

	/* Zastąp to swoimi strumieniami IO */
	std::istream& in = std::cin;
	std::ostream& out = std::cout;

	int a, b, tmp;
	in >> b;
	while(in >> tmp) {
		a = exchange(b, tmp);

		if(std::abs(a - b) == 2) {
			out << a << ' ' << b << '\n';
			++count;
		}
	}

	std::cout << "count: " << count;

	return 0;
}
komentarz 27 lutego 2017 przez Krystek102 Bywalec (2,440 p.)
dzięki za pomoc :)

Podobne pytania

+1 głos
2 odpowiedzi 971 wizyt
pytanie zadane 6 maja 2021 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)
0 głosów
2 odpowiedzi 604 wizyt
pytanie zadane 13 lipca 2019 w C i C++ przez Padomen Początkujący (260 p.)
0 głosów
2 odpowiedzi 765 wizyt
pytanie zadane 22 listopada 2016 w C i C++ przez dudu2002 Początkujący (330 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...