a) Se citeşte de la tastatură un şir de caractere notat cu s, de maximum 256 de caractere (format doar din litere mici ale alfabetului englez şi spaţii). Să se transforme în memorie şirul s, prin inlocuirea fiecărei litere din text cu litera mare corespunzătoare şi să se tipărească pe monitor şirul astfel obţinut.
b) Să se scrie subrogramul nrcif, care primeşte ca unic parametru un număr natural n de cel mult 4 cifre şi care returnează numărul de cifre ale numărului n primit ca parametru.
c) Să se scrie un program care citeşte de la tastatură un număr natural n (n ≤ 10000), reprezentând numărul de elemente ale unui vector v, apoi se citesc de la tastatură cele n elemente ale vectorului v, (numere naturale, de cel mult 4 cifre).
Utilizând apeluri utile ale subprogramului nrcif, programul modifică elementele vectorului v astfel: dacă v[i] este un număr par, el va fi înlocuit cu numărul de cifre din care este format, iar dacă este un număr impar, el va fi înlocuit prin pătratul său.
Vectorul modificat se afişează pe monitor.

Răspuns :

PROBLEMA A

#include <iostream>

#include <cstring>

using namespace std;

int main(){

   int i,n;

   char s[256];

   //Citeste sir, determina dimensiunea

   cin.get(s,256);

   n=strlen(s);

   //Parcurge fiecare litera

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

       //Daca caracterul citit e litera

       if(s[i]>='a'&&s[i]<='z'){

           //Transforma in litera mare

           s[i]+='A'-'a';

       }

   }

   //Afiseaza rezultat

   cout << s;

}

PROBLEMELE B SI C

#include <iostream>  

using namespace std;

int nrcif(int n){

   int c=0;

   while(n){

       c++;

       n=n/10;

   }

   return c;

}

int main(){

   int n,v[10000],i;

   //Citire date

   cin >> n;

   for(i=0;i<n;i++) cin >> v[i];

   //Prelucrare vector

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

       if(v[i]%2==0) v[i]=nrcif(v[i]);

       else v[i]=v[i]*v[i];

   }

   //Afisare rezultat

   for(i=0;i<n;i++) cout << v[i] << " ";

}

Vezi imaginea Andrei750238
Vezi imaginea Andrei750238