Discutii c++

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

Post Reply
User avatar
MrAndrei
Membru eXtream
Membru eXtream
Posts: 2120
Joined: 17 Mar 2013, 18:10
Detinator Steam: Da
CS Status: Facultatea iti mananca viata
SteamID: mrandreyx
Reputatie: Fost moderator
Nume anterior: asasinulfantoma
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 32 times
Been thanked: 28 times

25 Jan 2015, 18:34

++Am vazut ca in ultimul timp s-au tot deschis topicuri despre c++ asa ca am zis sa fac doar unul.
Deci are cineva vreo idee la problema asta: http://campion.edu.ro/arhiva/index.php? ... ew&id=1273
Vreo idee ceva despre cum sa o rezolv? Multumesc!
RoyalServer 2
User avatar
satasa
Membru, skill +1
Membru, skill +1
Posts: 371
Joined: 12 Nov 2012, 10:43
Detinator Steam: Nu
CS Status: Ocupat
Reputatie: Membru Club eXtreamCS (2 iun - 2 iul, Acces in Club)
Has thanked: 55 times
Been thanked: 10 times
Contact:

28 Jan 2015, 18:17

| Afiseaza codul
#include <iostream>

using namespace std;

struct Furnici{
    int directie;
    int id;
    int pozitie;
}furnici[10];

int nrFurnici, secunde = 0, moarte[10]={0}, nrFurniciMoarte = 0;

void citire()
{
    cout<<"Numar furnici: "; cin>>nrFurnici;
    for(int i=1; i<=nrFurnici; i++)
    {
        furnici.id = i;
        cout<<"Furnica "<<i<<" ==> "<<endl;
        cout<<"Directie: "; cin>>furnici.directie;
        cout<<"Pozitie: "; cin>>furnici.pozitie;
    }
}

void verificaPozitia()
{
    int schimb[10]={0};
   for(int i=1; i<=nrFurnici; i++)
    for(int j=1; j<=nrFurnici; j++)
        if(furnici.pozitie == furnici[j].pozitie && i!=j)
            {
                if(furnici.directie == 1 && schimb==0)
                {
                    furnici.directie =0;
                    schimb=1;
                }
                else
                    if(furnici.directie == 0 && schimb==0)
                    {
                        furnici[i].directie = 1;
                        schimb[i]=1;
                    }

            if(furnici[j].directie == 1 && schimb[j]==0)
                {
                    furnici[j].directie =0;
                    schimb[j] = 1;
                }
                else
                    if(furnici[j].directie == 0 && schimb[j]==0)
                    {
                        furnici[j].directie = 1;
                        schimb[j]=1;
                    }
        }

   for(int i=1; i<=nrFurnici; i++)
    if(furnici[i].pozitie<=0 || furnici[i].pozitie>=10)
        moarte[i] = 1;
    for(int i=1; i<nrFurnici;i++)
        schimb[i]=0;
}

bool verificaFurniciMoarte()
{
    for(int i=1; i<=nrFurnici; i++)
        if(moarte[i] ==  1)
            nrFurniciMoarte++;
            cout<<endl<<"Furnici ramase: "<<nrFurnici-nrFurniciMoarte<<endl<<endl;
    if(nrFurniciMoarte<nrFurnici)
        return true;
    return false;
}

int main()
{
    citire();
    cout<<endl;
    do
    {
        nrFurniciMoarte = 0;
        for(int i=1; i<=nrFurnici; i++)
        {
            if(furnici[i].directie == 1 && moarte[i] == 0)
            {
                furnici[i].pozitie++;
                cout<<"Furnica "<<i<<endl;
                cout<<"Directie: dreapta"<<endl;
                cout<<"Pozitie: "<<furnici[i].pozitie<<endl<<endl;
            }
            else
                if(furnici[i].directie == 0 && moarte[i] == 0)
                {
                    furnici[i].pozitie--;
                    cout<<"Furnica "<<i<<endl;
                    cout<<"Directie: stanga"<<endl;
                    cout<<"Pozitie: "<<furnici[i].pozitie<<endl<<endl;
                }

        }
        verificaPozitia();
        secunde++;
        cout<<"Secunde: "<<secunde<<endl;

    }while(verificaFurniciMoarte());
    return 0;
}
Post Reply

Return to “Discutii generale”

  • Information