• 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

Object Storage Arubacloud
0 głosów
4,162 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ź 780 wizyt
pytanie zadane 4 grudnia 2016 w C i C++ przez Akiro Bywalec (2,910 p.)
0 głosów
1 odpowiedź 2,325 wizyt
0 głosów
2 odpowiedzi 263 wizyt

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...