Cześć. Mam problem z programem.
Treść zadania:
Zadanie 6. Liczby inaczej (10 pkt)
W pliku liczby.txt, w oddzielnych wierszach, znajduje się 1000 liczb zapisanych w systemie dwójkowym o długościach zapisów od 2 do 16 cyfr (0 lub 1). Napisz program, którego wykonanie da odpowiedzi do poniż szych podpunktów. Odpowiedzi zapisz w pliku zadanie6.txt, a każdą odpowiedź poprzedź literą oznaczającą ten podpunkt.
a) Ile jest liczb parzystych w całym pliku?
b) Jaka jest największa liczba w tym pliku? Podaj jej wartość w dwóch systemach: dwójkowym i dziesiętnym.
c) Ile liczb w całym pliku ma dokładnie 9 cyfr? Podaj sumę tych liczb w systemie dwójkowym.
Aktualnie interesuje mnie tylko podpunkt C.
Nie chcę także żebyście mi pisali czy podawali interpretację tego problemu przez siebie/inne osoby.
Mam problem z swoim programem i właśnie to chcę rozwiązać. Nie potrzebuję działającego programu (czyjegoś).
Więc tak. W odpowiedziach maturalnych pisze:
W całym pliku dokładnie 9 cyfr ma 101 liczb.
Na razie interesuje mnie tylko pierwsza część podpunktu C - zliczenie ile liczb ma dokładnie 9 cyfr.
Naskrobałem coś takiego:
#include <iostream>
using namespace std;
int main()
{
int licznik = 0; // ustawienie licznika na 0
for (int i=0; i<1000; i++) // wczytanie 1000 kolejnych liczb
{
double liczba; //
cin >> liczba;
if (liczba / 1000000000 > 0.1 && liczba / 1000000000 < 1) // jeżeli liczba podzielona przez 1 000 000 000 jest większa od 0.1 i mniejsza od 1
{
cout << int(liczba) << endl; // napisz mi tą liczbę (dla testu)
licznik++; // dodaj do licznika 1
}
}
cout << "C: " << licznik; // napisz wynik
return 0;
}
Sposób użycia:
Tworzymy w tym samym katalogu co program plik nazwa.bat z zawartością:
nazwaprogramu.exe <liczby.txt >odp.txt
Zmieniamy według własnych potrzeb nazwaprogramu.exe oraz nazwa.bat.
Wynik mojego programu:
110100101
...
110101011
C: 100
Więc brakuje mi jednej liczby.
Czy ktoś pomógłby mi odnaleźć błąd w moim programie?
liczby.txt w załączniku
Pozdrawiam.
- liczby.txt (12 KB) - ściągnięć: 166
if (liczba / 100000000 >= 1 && liczba / 100000000 < 10)
oraz taki:if (liczba / 20000000 >= 5 && liczba / 50000000 < 20)
ale te wszystkie kombinacje są bezsensowne.