Informatică, întrebare adresată de Piticot1, 9 ani în urmă

DAU 70 DE PUNCTE !URGENT VA ROG!!!!
Păcală, tocmai a fost ales primar în satul său, motiv pentru care şi-a luat rolul în serios şi dorind să aibă o evidenţă clară a sătenilor a numerotat casele din sat astfel încât să ştie câţi bărbaţi, femei şi copii locuiesc în fiecare casă.
Astfel, toate casele au un număr format din 3 cifre, unde prima cifră (de la stânga la dreapta) reprezintă numărul de bărbaţi ce locuiesc în acea casă (pot fi maxim 9 bărbaţi), a doua cifră reprezintă numărul de femei (pot fi maxim 9 femei), şi în fine ultima cifră a numărului reprezintă numărul de copii (maxim 9) ce aparţin familiei din acea casă.
Cerinţă
Cunoscându-se numărul de case din satul lui Păcală, precum şi numerele acestora să se determine:
- numărul total al sătenilor din sat.
- numărul minim de membrii ai unei familii.
- câte familii au număr minim de membrii.

Răspunsuri la întrebare

Răspuns de stassahul
2
var x,y,z,m:array of integer;
n,s,min,mintot:integer;
i:byte;

begin
Write('Case: ');
read(n);   //Citirea caselor
setlength(x,n);
setlength(y,n);
setlength(z,n);
setlength(m,n);
writeln;

for i:=0 to n-1 do begin   //Citirea membrilor
Writeln('Numerele casei ',i+1,':');
Write('Barbati: '); read(x[i]);
Write('Femei: '); read(y[i]);
Write('Copii: '); read(z[i]);
writeln;
if (x[i]>9) or (y[i]>9) or (z[i]>9) then begin //Conditia ca numarulnu poate depasi 9
writeln('Numarul nu poate depasi 9!');
exit;
end;
end;

for i:=0 to n-1 do s+=x[i]+y[i]+z[i]; //Calculam sumarul satenilor
writeln('Numarul total al satenilor : ',s);
writeln;

for i:=0 to n-1 do m[i]:=x[i]+y[i]+z[i]; //Facem un array pentru membrii tuturor caselor

min:=m[0];    //Presupunem ca casa 1 are un numar minim de membrii
for i:=0 to n-1 do if (m[i]<min) then min:=m[i];
Writeln('Numarul minim de membrii ai unei familii: ',min);
writeln;

for i:=0 to n-1 do if (m[i]=min) then inc(mintot); //Controlam daca mai exista o familie care are un numar minim de membrii
if mintot=1 then Writeln('O singura familie are un numar minim de membrii') else Writeln(mintot,' familii au numar minim de membrii.');

end.
Răspuns de blindseeker90
0


#include <iostream>

using namespace std;

int main(){
//nr maxim de membri ai unei familii este 27, 9+9+9 deci presupunem ca
//toate sunt maxime la inceput
int n,locuinte[100],min_membri_fam=27,nr_membri_sat=0,nr_fam_min,i;
int membri_fam,nr_tati_fam,nr_mame_fam,nr_copii_fam;
cout<<"Introduceti nr de case:";
cin>>n;
cout<<"Introduceti numerele atasate fiecarei case:";
for(i=0;i<n;i++){
cin>>locuinte[i];
nr_tati_fam=locuinte[i]/100;
nr_mame_fam=(locuinte[i]%100)/10;
nr_copii_fam=locuinte[i]%10;
membri_fam=nr_tati_fam+nr_mame_fam+nr_copii_fam;
if(membri_fam<min_membri_fam){
min_membri_fam=membri_fam;
nr_fam_min=1;
}
else if(membri_fam==min_membri_fam){
nr_fam_min++;
}
nr_membri_sat=nr_membri_sat+membri_fam;
}
cout<<"Nr de membri ai satului:"<<nr_membri_sat<<endl;
cout<<"Nr de membri minim ai familiei:"<<min_membri_fam<<endl;
cout<<"Nr de familii cu numar minim de membri:"<<nr_fam_min<<endl;
return 0;
}
Alte întrebări interesante