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

#2348 Caracterul mediu 1

Caracterul mediu a două sau al mai multor caractere este caracterul care are codul ASCII egal cu partea întreagă a mediei aritmetice a codurilor ASCII ale caracterelor date.

Un caracter se numeste bun daca nu este spatiu, nu este litera mare si nu este vocala.

Cerința
Se citeste un sir de caractere (care poate contine si spatii). Să se determine caracterul mediu al caracterelor bune din sir .

Date de intrare
Programul citește de la tastatură un sir de caractere.

Date de ieșire
Programul va afișa pe ecran caracterul mediu al caracterelor bune din sir .

Restricții și precizări
2 ≤ numărul de caractere citite ≤ 200
Caracterul mediu poate fi spatiu, litera mare sau vocala.
Cel putin un caracter va fi bun



Exemplu
Intrare

fz
Ieșire

p

#include
#include
using namespace std;

int main()

{
char ch, carMediu;
int cod, media_aritm_a_codurilor, suma=0, contor=0;
cin >> ch;
if (...)
...
else
{
while (...)
{
++contor;
cod=(int)ch;
suma+=cod;
cin >> ch;
}
media_aritm_a_codurilor=suma/contor;
carMediu=media_aritm_a_codurilor;
cout << carMediu;
}
return 0;
}
//nu am reusit sa pun conditiile impuse de problema
//nu-mi ia cazul in care sunt litere mari

Răspunsuri la întrebare

Răspuns de boiustef
7

#include <iostream>

#include <cstring>

using namespace std;

char s[201], vocale[]="AEIOUaeiou", chmediu;

int n, i, suma, contor;

bool bun(char ch)

{

   if (ch!=' ' && !strchr(vocale,ch) && !(ch>='A' && ch<='Z')) return 1;

   else return 0;

}

int main()

{

   cin.getline(s,201);

   n=strlen(s);

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

   {

       if (bun(s[i]))

       {

           ++contor;

           suma+=(int)s[i];

       }

   }

   chmediu=(char)(suma/contor);

   cout << chmediu;

}

Alte întrebări interesante