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ăspunsuri la întrebare
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] << " ";
}

