• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica char, zliczanie znaków, a-z

Cloud VPS
0 głosów
4,552 wizyt
pytanie zadane 28 listopada 2015 w C i C++ przez agre Użytkownik (550 p.)

Mam do napisania funkcję, która sprawdzi, ile różnych liter 'a-z' występuję w 200 elementowej tablicy znaków.

#include <iostream>
using namespace std;


void check(char *tab, int rozmiar);

int main()
{
	char tablica[200];
	check(tablica, 200);
	
	return 0;
}

void check(char *tab, int rozmiar)
{
	//97-122 to kod a-z

	for (int i = 97; i < 123; i++)
	{
		for (int j = 0; j < 200; j++)
		{
			if (tab[i] == j); //I teraz następuję moment, z którym nie wiem jak sobie poradzić
		}
	}
	
}

Chciałabym, żeby program na końcu wypisywał coś w zasadzie:
Liter a w ilości x itd;

Zakładam, że porównuję każdą szufladkę z osobna pokolei, żeby sprawdzić, czy nie odpowiada, któreś z liter a-z.
I teraz, nie wiem, co napisać po ifie sprawdzającym to. Bez sensu wydaje się tworzenie każdej zmiennej do liter a-z. 

Jakaś podpowiedź do rozwiązania takiego problemu?

 

1 odpowiedź

+1 głos
odpowiedź 28 listopada 2015 przez Radfler VIP (101,030 p.)
edycja 28 listopada 2015 przez Radfler

Utwórz sobie zmienną typu size_t o nazwie ilość. Będziesz jej używał do zliczania wystąpień. Przeanalizuj kod, bo zrobiłeś trochę znacznących błędów.

void check(char *tab, int rozmiar)
{
    for (int i = 'a'; i <= 'z'; i++)
    {
        // Pomocnicza zmienna
        size_t ilosc = 0;
        for (int j = 0; j < rozmiar; j++) // 'j < rozmiar' a nie 'j < 200'
        {
            if (tab[j] == i) { // 'tab[j] == i' a nie 'tab[i] == j'
                ++ilosc;
            }
        }
        // Drukujemy
        printf("Litera %c w ilości %u", i, ilosc);
    }
}

Poza tym przydałoby się wypełnić tą tablicę jakimiś znakami. W przeciwnym razie będziemy mieli UB...

komentarz 28 listopada 2015 przez Sebastian Fojcik Nałogowiec (43,040 p.)

Fajna odpowiedź. Szkoda, że ten nieszczęsny printf :-P

A teraz zadanko z gwiazdeczką ode mnie. Podaj złożoność tego algorytmu :-)

komentarz 28 listopada 2015 przez Radfler VIP (101,030 p.)
Obliczeniowa? Nooo rozwiązanie jest słabe, więc pewnie n^2...

Podobne pytania

0 głosów
1 odpowiedź 1,052 wizyt
pytanie zadane 4 grudnia 2016 w C i C++ przez Akiro Bywalec (2,910 p.)
0 głosów
1 odpowiedź 2,785 wizyt
0 głosów
2 odpowiedzi 436 wizyt

93,487 zapytań

142,420 odpowiedzi

322,771 komentarzy

62,901 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...