Anagram (matura 2010) ver. 2
Kod był wyświetlany 2021 razy.
    /*
  Name: Anagram
  Copyright: GPL GNU
  Date: 01-06-10 18:28
  Description: Matura 2010 - zad.4 Anagram
*/
#include<fstream>
using namespace std;

unsigned int abc[20][5];   //globalna tablica przechowująca litery alfabetu zawarte w słowach zapisane jako liczby

void sort()             //sortowanie przez wybór
{
     for(int i=0;i<5;i++)
     for(int j=0;j<20;j++)
     for(int a=j+1;a<20;a++)
     if(abc[a][i]<abc[j][i])
     {
                      swap(abc[a][i],abc[j][i]);
                      }
     }

bool anagram()        //funkcja sprawdzająca czy 5 słów jest anagramami
{
     for(int i=0;i<20;i++)
     {
     if((abc[i][0]!=abc[i][1])||(abc[i][0]!=abc[i][1])||(abc[i][0]!=abc[i][2])||(abc[i][0]!=abc[i][3])||(abc[i][0]!=abc[i][4]))
     return false;
     }
     return true;     
     }

int main()
{
    string slowa[200][5];
    
    ifstream czytaj("anagram.txt");
    
    for(int i=0;i<200;i++)         //czytanie danych
    for(int j=0;j<5;j++)
    czytaj>>slowa[i][j];
    
    czytaj.close();
    
    ofstream pisza("odp_4a.txt");
    ofstream piszb("odp_4b.txt");
    
    for(int i=0;i<200;i++)
    {
            if((slowa[i][0].length()==slowa[i][1].length())&&(slowa[i][0].length()==slowa[i][2].length())&&(slowa[i][0].length()==slowa[i][3].length())&&(slowa[i][0].length()==slowa[i][4].length()))
            {
            pisza<<slowa[i][0]<<" "<<slowa[i][1]<<" "<<slowa[i][2]<<" "<<slowa[i][3]<<" "<<slowa[i][4]<<endl;
            
            for(int a=0;a<20;a++)                   //zerowanie tablicy
            for(int z=0;z<5;z++)
            abc[a][z]=0;
            
            for(int j=0;j<slowa[i][0].size();j++)   //wpisywanie liter do tablicy
            {
                    abc[j][0]=slowa[i][0].at(j);
                    abc[j][1]=slowa[i][1].at(j);
                    abc[j][2]=slowa[i][2].at(j);
                    abc[j][3]=slowa[i][3].at(j);
                    abc[j][4]=slowa[i][4].at(j);
                    }
            sort();
            
            if(anagram()==true)
            piszb<<slowa[i][0]<<" "<<slowa[i][1]<<" "<<slowa[i][2]<<" "<<slowa[i][3]<<" "<<slowa[i][4]<<endl;
            }
    }
    
    pisza.close();
    piszb.close();
    
    return 0;
    }
    
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT