Bałagan i stonki
Kod był wyświetlany 1362 razy.
    /*
Name: Bałagan i Stonki
Copyright: GPL GNU
Date: 14-02-10 20:52
Description: Przewodniczący Stonkony chce się dowiedzieć z ilu członków składa się jego organizacja. Zarządził, aby wszyscy członkowie wpisali się na listę obecności. Stonki są mało inteligentne, więc część z nich wpisała się na listę wielokrotnie. Na domiar złego nie potrafią dobrze pisać: mylą się im małe i wielkie litery oraz często wpisują znak (minus). Pomóż Przewodniczącemu dowiedzieć się, jak duża jest jego organizacja.
*/
#include<iostream>
using namespace std;

int main()
{
        string t=" "; //zmienna pomocnicza
        unsigned int j, licznik=0;
        cout<<"Podaj ilosc nazwisk: ";
        cin>>j;

        j++;                //poprawka, program tworzył tablicę o 1 mniejszą od żądanej

        string *imie=new string[j],*imie2=new string[j]; //utworzenie dynamicznych tablic typu string

        cout<<"Podaj nazwiska (max 20 liter)"<<endl;
        for(int i=0;i<j;i++)
        {
                 getline(cin,imie[i]);                //wpisywanie nazwisk do pierwszej tablicy
                 imie2[i]="                                ";                 //zapisywanie 20 spacji do drugiej tablicy !UWAGA! - wpisanie więcej niż 20 liter wywoła błąd
                 }
        for(int i=0;i<j;i++)
        {
        for(int g=0, o=0;g<imie[i].size();g++)
        if(imie[i].at(g)!=45)
        {
                                imie2[i].at(o)=imie[i].at(g);         //wpisywanie do drugiej tablicy pełnych nazwisk (bez znaków "-")
                                o++;
                                }
        for(int g=0;g<imie2[i].size();g++)         //zamiana wszystkich małych liter na duże
        if((imie2[i].at(g)>=97)&&(imie2[i].at(g)<=122))
        imie2[i].at(g)=imie2[i].at(g)-32;
                 }
        for(int i=0;i<j;i++)
        {
                 for(int g=0;g<j;g++)                                //wyrzucanie z tablicy powtarzających sie nazwisk
                 {
                                if(i!=g)
                                if(imie2[i]==imie2[g])
                                imie2[g]=t;
                                }
                 }
        for(int i=0;i<j;i++)                         //zliczanie nazwisk
        {
                 if(imie2[i]!=t)
                 licznik++;
                 }

        cout<<"Stonkona sklada sie z "<<licznik-1<<" czlonkow";         //wyświetlanie wyniku (z niewiadomych przyczyn pokazywał o 1 za dużo)

        delete [] imie;
        delete [] imie2;         //usuwanie niepotrzebnych juz tablic

cin.ignore();
getchar();
return 0;
}     
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT