Zadanie z porównywaniem liczb

Zadanie z porównywaniem liczb
May2Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

Hej, mam problem z zadaniem z lekcji, czy ktoś może wie, jak zrobić to zadanie? Nie można używać tablic w tym zadaniu, a to jest treść zadania: "Dany jest ciąg liczb rzeczywistych zakończony zerem. Napisz program, który wypisze te liczby, których ostatnia cyfra w części całkowitej jest taka sama jak pierwsza cyfra w części ułamkowej. Np. 1234.43 spełnia warunki, liczba 1234.1234 nie spełnia"
A to kod, który napisałem potrzebuje poprawy

Kopiuj
#include <iostream>
using namespace std;

int main()
{
    float x,xr;
    int i=0;
    cout<<"Program wypisuje liczby, ktorych ostatnia cyfra w czesci dziesietnej jest rowna pierwszej cyfrze w czesci ulamkowej"<<endl;
    cout<<"Dane"<<endl<<"===="<<endl;
    while (x!=0)
    {
        cout<<i+1<<". liczba = ";
        cin>>x;
        xr=x-int(x);
        if ((int(x)%10==xr*10) && x!=0)
        {
            cout<<i+1<<". liczba spelniajaca warunek = "<<x;
        }
        i++;
    }
}

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
bool warunek(double x)
{
    // napisz sam
}

int main()
{
     double x;
     while (std::cin >> x) {
         if (warunek(x)) std::cout << x << '\n';
     }
     return 0;
}
May2Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0
MarekR22 napisał(a):
Kopiuj
bool warunek(double x)
{
    // napisz sam
}

int main()
{
     double x;
     while (std::cin >> x) {
         if (warunek(x)) std::cout << x << '\n';
     }
     return 0;
}

A da radę bez tej dodatkowej funkcji? Napisać tylko w funkcji main?

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0
May2Bee napisał(a):

A da radę bez tej dodatkowej funkcji? Napisać tylko w funkcji main?

Da radę, przecież tam jest tylko użycie funkcji. Czemu by miało nie dać rady?

May2Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0
szweszwe napisał(a):
May2Bee napisał(a):

A da radę bez tej dodatkowej funkcji? Napisać tylko w funkcji main?

Da radę, przecież tam jest tylko użycie funkcji. Czemu by miało nie dać rady?

No właśnie jak robię bez tej funkcji to mi nie wychodzi wypisywanie tej liczby.

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
3

Uważam, że konwersja na double (a float to już zupełne nieporozumienie) w tym zadaniu jest błędem (np. co będzie dla 3333.3333? albo kilku trójek więcej?). Wczytaj string. Znajdź kropkę/przecinek. Porównaj otrzymane stringi.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
May2Bee napisał(a):

A da radę bez tej dodatkowej funkcji? Napisać tylko w funkcji main?

Oczywiście, można użyć lambdy.

May2Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

Dobra, poradziłem sobie za pomocą stringa tak jak @kq napisał, działa dobrze. Dzięki wszystkim za pomoc. A co do pisania w jednej funkcji, tak wymaga profesor na studiach póki co, nic nie poradzę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.