Răspuns :
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
#define marime_numar 100 //numarul de cifre pe care il poate avea numarul din "numar.in"
int main()
{
ifstream infile("numar.in");
ofstream outfile("numar.out");
char numar[marime_numar] = {};
int max=0, poz_max, min=9, poz_min;
infile >> numar; //introduc nr. din "numar.in" in sirul de caractere "numar"
for(int i=0; i<marime_numar; i++)
{
if(numar[i] == '\0') //daca intalnesc caracterul NULL inseamna ca am ajuns la finalul numarului
{
break;
}
if(numar[i] - '\0' - 48 > max) //convertesc cifrele din char in int si reinnoiesc valorile variabilelor
{
max = numar[i] - '\0'- 48;
poz_max = i;
}
if(numar[i] - '\0' - 48 < min) //convertesc cifrele din char in int si reinnoiesc valorile variabilelor
{
min = numar[i] - '\0'- 48;
poz_min = i;
}
}
outfile << "Maxim: " << max << " " << "Pozitie: " << poz_max << endl; //afisez rezultatul in "numar.out"
outfile << "Minim: " << min << " " << "Pozitie: " << poz_min << endl; //afisez rezultatul in "numar.out"
infile.close();
outfile.close();
return(0);
}
Explicație:
numar[i] - '\0' - 48 -> daca scazi dintr-un char caracterul NULL vei afla codul ASCII. Codul ASCII pentru valoarea 1 este 49, asa ca scad 48 din 49. Pentru valoarea 2 este 50, s.a.m.d. Asa convertesc fiecare cifra in int si o compar cu variabilele max, min existente.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!