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

Cerința

Se citesc de la tastatură n numere naturale. Să se determine numărul a cărui sumă a cifrelor este cea mai mare, respectiv cea mai mică.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Minimul va fi afișat pe primul rând și maximul pe al doilea rând.

Restricții și precizări
•1 ≤ n ≤ 1000
•cele n numere citite sun mai mici decât 2.000.000.000
•dacă exista mai multe numere cu aceeași suma minima/maxima se va afișa primul găsit




Exemplu

Intrare
5 145 225 198 326 874


Ieșire
225
874


Explicație

145 -> 1+4+5=10
225 -> 2+2+5=9 (minimul)
198 -> 1+9+8=18
326 -> 3+2+6=11
874 -> 8+7+4=19 (maximul)

EU AM FACUT ACEST PROGRAM INSA NU IMI MERGE, VA ROG, MA PUTETI AJUTA??
AICI ESTE PROGRAMUL ME:
#include
#include
using namespace std;
int main()
{
int n,x,i,maxim=INT_MIN,minim=INT_MAX,cif,s=0;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
while(x!=0)
{
cif=x%10;
s=s+cif;
x=x/10;
if(s>maxim)
maxim=s;
if(s minim=s;
}
}
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de ionutg38
4
#include <iostream> using namespace std; //ifstream cin("f.in"); //ofstream cout("f.out"); int n,a,mi=999999,ma=0,s; int sumcif(int n) { int s=0; while(n) { s+=n%10; n/=10; } return s; } int main() { cin>>n; for(int i=0;i<n;i++) { cin>>a; s=sumcif(a); if(s<sumcif(mi)) mi=a; if(s>sumcif(ma)) ma=a; } cout<<mi<<'\n'<<ma; return 0; }

ionutg38: #include <iostream>

using namespace std;
//ifstream cin("f.in");
//ofstream cout("f.out");
int n,a,mi=999999,ma=0,s;
int sumcif(int n)
{
int s=0;
while(n)
{
s+=n%10;
n/=10;
}
return s;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a;
s=sumcif(a);

if(s<sumcif(mi))
mi=a;
if(s>sumcif(ma))
ma=a;
}
cout<<mi<<'\n'<<ma;
return 0;
}
Alte întrebări interesante