Zadanie z porównywaniem liczb

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

#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++;
    }
}

1
bool warunek(double x)
{
    // napisz sam
}

int main()
{
     double x;
     while (std::cin >> x) {
         if (warunek(x)) std::cout << x << '\n';
     }
     return 0;
}
0
MarekR22 napisał(a):
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?

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?

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.

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.

0
May2Bee napisał(a):

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

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

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ę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1