Discutii despre tot ce nu se incadreaza in celelalte categorii.
Moderators: Moderatori ajutatori, Moderatori
-
MrAndrei
- 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!
-
satasa
- 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;
}
-
Users browsing this forum: fentezzzzz and 382 guests