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

Păcală, tocmai a fost ales primar în satul Păcălici. Cum în satul lui nu locuiesc decât familii care au o legătură de rudenie cu noul primar, Păcală s-a gândit să numeroteze casele astfel încât să ştie ce legătură de rudenie are cu un membru al familiei ce locuieşte în acea casă, şi câţi barbaţi, femei şi copii locuiesc în fiecare casă.
Astfel toate casele au un număr format din 4 cifre, unde prima cifră (de la stânga la dreapta ) reprezintă gradul de rudenie cu Păcală (pot fi rude de gradul 1, 2 sau 3), a doua cifră reprezintă numărul de bărbaţi ce locuiesc în acea casă (pot fi maxim 6 bărbaţi), a treia cifră reprezintă numărul de femei (pot fi maxim 6 femei) şi în fine ultima cifră a numărului reprezintă numărul de copii (maxim 9) ce aparţin familiei din acea casă.
Cerinţă
Ştiindu-se numărul de case din satul lui Păcală, precum şi numerele caselor să se afişeze câte familii au legătură de rudenie de gradul 1, 2 şi 3 cu Păcală, precum şi numărul de bărbaţi, femei, respectiv copii care trăiesc în satul lui Păcală.
Date de intrare un număr natural n reprezentând numărul de case, apoi n numere intregi cu exact patru cifre reprezentând numerele caselor..
Date de ieşire Se vor afișa: pe prima linie numărul de rude de gradul 1, pe linia a doua numărul de rude de gradul 2, iar pe linia a treia numărul de rude de gradul 3. Pe cea de a patra linie va fi scris numărul de bărbaţi, pe a cincea numărul de femei, iar pe ultima linie numărul de copii.
Exemple
Intrare
6
1232
3215
2345
1325
3459
1123
Iesire
3
1
2
15
17
29


rossetta: Ce limbaj de programare ?

Răspunsuri la întrebare

Răspuns de Robert14
2
int n,a,nrrudegrad1=0,nrrudegrad2=0,nrrudegrad3=0,nrbarbati=0,nrfemei=0,nrcopii=0;
cout<<"n=";cin>>n;
for(int i=0;i<=n;i++)
{cin>>a;
if (a/1000==1) nrrudegrad1++;
if (a/1000==2) nrrudegrad2++;
if (a/1000==3) nrrudegrad3++;
nrbaieti=nrbarbati +a/100%10;
nrfemei=nrfemei+a/10%10;
nrcopii=nrcopii+a%10;
}cout<<nrrudegrad1<<endl<<nrrudegrad2<<endl<<nrrudegrad3<<nrbarbati<<endl<<nrfemei<<nrcopii; 
Răspuns de rossetta
1
1) Rezolvare in C:

#include <stdio.h>

int main(void) {
  int n, a, gr3 = 0, gr1 = 0, gr2 = 0, copii = 0, femei = 0, barbati = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a);
    copii = copii + a % 10;
    femei = femei + a % 100 / 10;
    barbati = barbati + a % 1000 / 100;
    a = a / 1000;
    if ( a == 1)
      gr1++;
    else if(a == 2)
      gr2++;
    else if(a == 3)
      gr3++;
  }
   printf("%d\n" ,gr1); 
   printf("%d\n" , gr2);
   printf("%d\n" , gr3);
   printf("%d\n" , barbati);
   printf("%d\n" , femei);
   printf("%d\n" , copii);
   return 0;
}

2) Rezolvare in C++ :

#include <iostream>
using namespace std;

int main() {
  int n, a, gr3 = 0, gr1 = 0, gr2 = 0, copii = 0, femei = 0, barbati = 0;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a;
    copii = copii + a % 10;
    femei = femei + a % 100 / 10;
    barbati = barbati + a % 1000 / 100;
    a = a / 1000;
    if ( a == 1)
      gr1++;
    else if(a == 2)
      gr2++;
    else if(a == 3)
      gr3++;
  }
   cout << gr1 << endl << gr2 << endl << gr3 << endl << barbati << endl << femei <<endl <<copii;
   return 0;
}






Alte întrebări interesante