Zadanie z trzycyfrowymi liczbami palindromicznymi

0

Chcę wiedzieć co muszę poprawić w tym kodzie w ogóle nie działa. Treść zdania niżej
Napisz program, który wypisze wszystkie trzycyfrowe liczby palindromiczne.

#include<iostream>
using namespace std;

int main()
{
    for(int i=100; i<=999; i++)
    {
    if(i[0]==i[2])
    cout<<i<<" ";
    }
    return 0;
}

5

Czy 040 też jest taką liczbą?

Ogółem pomysł nie jest zły, ale musisz zamienić sobie liczbę i na string, aby porównywać konkretne cyfry.

Ewentualnie, możesz zauważyć, że zamiast iterować po wszystkich liczbach z zakresu możesz wypisać tylko same palindromy. Są one w formie aba, gdzie a to cyfra 1-9 (albo 0-9 jeśli 040 jest), a b to cyfra 0-9, więc wystarczą dwie pętle.

3

Próbujesz indeksować (operator []) inty, a one tego nie potrafią — to jest jeden obiekt.

Jak chcesz się dostać do którejś cyfry, to możesz to zrobić na dwa sposoby: albo robiąc z tego inta stringa, przy użyciu std::to_string, albo wykorzystując operacje arytmetyczne — np. ostatnia cyfra z x to x % 10, przedostatnia to x % 100 - x % 10, trzecia od końca to x % 1000 - x % 100 itd.

Ale najlepiej będzie, tak jak kq pisze — po prostu generować od razu palindromy.

4
soilehpa napisał(a):

Chcę wiedzieć co muszę poprawić w tym kodzie w ogóle nie działa.

Skończ raz na zawsze ze słowem "nie działa", tak się nigdy ze samym sobą i z nami nie dogadasz.

W tym wypadku się nie kompiluje, inaczej mówiąc ma błędy kompilacji. O działaniu to nawet jaskółki nie ćwierkają.

(prawidłowa interpunkcja też ma związek z systematycznym myśleniem)

2
#include <iostream>
using namespace std;

int main()
{
	for(int f=1;f<=9;++f) for(int m=0;m<=9;++m) cout<<f<<m<<f<<endl;
	return 0;
}

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