[C++] Palindrom w pętli

Wojtuma
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 24 lis 2013, o 22:25
Płeć: Mężczyzna
Lokalizacja: Słupsk

[C++] Palindrom w pętli

Post autor: Wojtuma »

Witam, mam do napisania program w języku c++, który sprawdza czy wyraz przeze mnie wpisany jest palindromem (wyraz czytany od przodu i od tyłu brzmi tak samo, program ma to sprawdzać tyle razy ile ktoś sobie zażyczy. Jednak wyniki do wszystkich testów (zależnie od ich liczby) mają być pokazywane na końcu.

Przykładowo:

Kod: Zaznacz cały

(wejście)

l. testów>>3
Pierwszy wyraz>>kajak
Drugi wyraz>>mama
Trzeci wyraz>>aga

(wyjście)

TAK
NIE
TAK
Mój problem polega na tym, że mam ułożony program, który wykonuje tyle testów ile zechcę, sprawdza czy wyraz jest palindromem, a lecz wynik wyświetla się zawsze po kolejnym wyrazie, a nie na końcu.
Jeżeli ktoś mógłby mi podpowiedzieć co z tym zrobić, będę wdzięczny. Jeżeli chodzi o te wyniki to wydaje mi się, że brakuje gdzieś dodatkowej pętli for albo zapisywania do tablicy, ale też nie mogę tego rozgryźć. Wiem, że to łatwe, ale próbowałem wszystkiego. POMOCY!!!

tutaj kod do programu:
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
int ile;
bool palindrom = true;
string slowo;
cin>>ile;
for( int palindrom = 1; palindrom <= ile; palindrom++ )
{
cin >> slowo;
int d = slowo.length();
bool mayBePali = true;
for (int i = 1; i <= slowo.length() / 2 && mayBePali; ++i) {
if (slowo == slowo[slowo.length() - 1 - i]) {
mayBePali = true;
} else {
mayBePali = false;
}
}
if (mayBePali) {
cout << "TAK";
} else {
cout << "NIE";
}
}
return 0;
}
Ostatnio zmieniony 25 lis 2013, o 10:49 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Gouranga
Użytkownik
Użytkownik
Posty: 1594
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 246 razy

[C++] Palindrom w pętli

Post autor: Gouranga »

Twój kod jest bałaganiarski i nieczytelny...

Kod: Zaznacz cały

#include <stdio.h>
#include <string.h>
#define MAX 24

int main(int argc, char **argv){
  int ile;
  printf("Podaj ilosc prob
");
  scanf("%i", &ile);
  char wynik[ile][4], slowo[MAX];
  int i, j,p;
  for (i=0; i<ile; i++){
    scanf("%s", slowo);
    p = 1;
    j = 0;
    whlie (p==1 && j <= strlen(slowo)/2){
      if (slowo[j] != slowo[strlen(slowo) - 1 - j] ){
        p = 0;
      }
      j++;
    }
    p == 1 ? strcpy(wynik[i], "TAK") : strcpy(wynik[i], "NIE");
  }
  for (i=0; i<ile; i++){
    printf("%s
", wynik[i]);
  }
return 0;
}
nie wiem czy działa, pisałem z palca
Ostatnio zmieniony 24 lis 2013, o 23:12 przez Gouranga, łącznie zmieniany 1 raz.
Wojtuma
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 24 lis 2013, o 22:25
Płeć: Mężczyzna
Lokalizacja: Słupsk

[C++] Palindrom w pętli

Post autor: Wojtuma »

Przepraszam za namącenie w nim, ale programuję może od miesiąca. Kod działa, dzięki, dzięki, dzięki i jeszcze raz DZIĘKUJĘ.
Gouranga
Użytkownik
Użytkownik
Posty: 1594
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 246 razy

[C++] Palindrom w pętli

Post autor: Gouranga »

poprawiłem jeden niuans, usunąłem niepotrzebną zmienną, ale jak działa to fajnie, ja programuję już czwarty rok i trochę mnie po prostu drażni brak wcięć i robienie zmiennych o długich nazwach
ODPOWIEDZ