Informatică, întrebare adresată de bogdancojocaru02, 8 ani în urmă

Va rog daca se poate sa ma ajutati .
Profesorul diriginte doreste o lista cu n fete si n baieti din care sa formeze perechi penru serviciul pe clasa ( n numar par )
Ordinea elevilor in lista va fi aleasa astfel incat perechile sa se formeze din primul si ultimul elev , al doilea si penultimul si asa mai departe . nu va fi nici o pereche mixta (fata baiat)
a)Cunoscand numele elevilor (prima litera )si tipul lor (fata sau baiat) sa se formeze lista ceruta ce profesorul diriginte
Ex: C M A D L O H P lista va fi : C A L P D M O H
f f b b f b f b
b) sa se formeze perechile elevilor de serviciu
EX : pentru exemplul considerat la punctul a , perechile vor fi :
C-H A-O L-M P-D (exista mai multe solutii)


boiustef: nu e clar.... pentru lista asta
C A L P D M O H
f f b b f b f b
ai spus că nu va fi nici o pereche mixta (fata baiat), dar perechia A-O şi P-D nu sunt mixte? sau eu nu înţeleg bine
bogdancojocaru02: si pe mine m-a derutat ordinea . in primul subpunct sunt aranzati fata baiat iar la b sunt baiat baiat si fata fata
bogdancojocaru02: si enuntul principal spune sa nu fie mixte
boiustef: e fb când postezi întrebarea să postezi sursa principaşă sau o imagine a originalului

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

using namespace std;

char nume, tip, v[40];

int n, i, indb,indf;

int main()

{

   cout << "nr. de elevi, n= "; cin >> n;

   cout << "introdu " << n << " perechi de caractere \n";

   cout << "Majuscula pt. nume, b/f pt. tip \n";

   indb=2; indf=1;

   for (i=1; i<=n/2; ++i)

   {

       cin >> nume >> tip;

       if (tip=='b') { v[indb]=nume; indb+=2; }

       else { v[indf]=nume; indf+=2; }

   }

   indb=n/2+1; indf=n/2+2;

   for (i=n/2+1; i<=n; ++i)

   {

       cin >> nume >> tip;

       if (tip=='b') { v[indb]=nume; indb+=2; }

       else { v[indf]=nume; indf+=2; }

   }

   cout << "Lista obtinuta: ";

   for (i=1; i<=n; ++i)

       cout << v[i] << " ";

   cout << "\n";

   cout << "Perechi pentru serviciu: ";

   for (i=1; i<=n/2; ++i)

       cout << v[i] << "-" << v[n+1-i] << "   ";

}

Explicație:

Sper să fie clar cum se introduc datele... În prima jumătate a vectorului cu Nume plasăm f b f b ... , iar în a doua jumătate plasăm b f b f .....

Astfel se obţine o listă acceptabilă condiţiei şi în final scriem perechile primul - ultimul şamd

Sper să fie ceea ce vrei...


bogdancojocaru02: este ok . MULTUMESC
boiustef: nu e ok... acum plasez varianta ok...
boiustef: https://pastebin.com/Q8eT4dAS
aici e codul corect...
boiustef: prima varianta cred ar da gresit pt date de intrare ffffbbbb
Alte întrebări interesante