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

Fișierul date.in conține cel mult 1000 numere întregi separate printr-un spațiu. Sa se afișeze in fișierul date.out  suma numerelor care au cifra maxima impara.​

Răspunsuri la întrebare

Răspuns de stematecatalinox9e98
1

#include <fstream>

using namespace std;

ifstream cin("date.in");

ofstream cout("date.out");

int n,m,vec[1001],c=0,maxim=-2147483648;

int main(){

   cin>>n;

   for(int i=1;i<=n;i++)cin>>vec[i];

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

       m=vec[i];

       while(m){

           c=m%10;

           if(c>maxim)maxim=c;

           m=m/10;

       }

       if(maxim%2!=0)cout<<vec[i]<<" ";

       c=0;

   }

}

Răspuns de boiustef
2

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("date.in");

ofstream g("date.out");

int v[1000],ci[1000];

int main()

{

   int num,n=0,i,cmax,c;

   while (f >> num) {

       v[n]=num; cmax=0;

       while (num) {

           c=num%10;

           if (c%2==1 && c>cmax) cmax=c;

           num=num/10;

       }

       ci[n]=cmax;

       ++n;

   }

   cmax=ci[0];

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

       if (ci[i]>cmax) cmax=ci[i];

   }

   int s=0;

   for (i=0; i<n; i++) {

       if (ci[i]==cmax) {

           s=s+v[i];

       }

   }

   g << s;

   return 0;

}

Explicație:

- Se citesc numerele din date.in in vectorul v.

- Se completează și vectorul ci cu cifra impară maximă a numărului citit.

- Se găsește cifra maximă impară din vectorul ci

- Se calculează suma numerelor din vectorul v, ce au cifra impară maximă;

- Se scrie suma calculată în date.out.

Succese!

Alte întrebări interesante