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

C++


Să se scrie un program care citește de la tastatură caractere până la întâlnirea caracterului „?”. Să se afișeze caracterele introduse de la tastatură având următoarea condiție:

Dacă au fost introduse două caractere consecutive (din punct de vedere alfabetic, ex. „ab”), caracterul curent (al doilea caracter din cele două valori consecutive, ex. „b” din ”ab”) va fi înlocuit cu media tuturor caracterelor introduse de la tastatură până în punctul respectiv.

Date de intrare: Pe o linie caractere.

Date de ieșire:

Caracterele introduse de la tastatură cu modificările din cerință.

Exemplu:

Date de intrare:

afghtkij?

Date de ieșire:

afdetkii

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

using namespace std;

int main() {

   char c[10001];

   int s = 0, cnt = 0;

   bool sep = false;

   cin >> c;

   for (int i = 0; c[i] != '?'; ++i) {

       s += c[i];

       cnt++;

       if (!sep) {

           cout << c[i];

       }

       else {

           cout << (char)(s/cnt);

           sep = false;

       }

       if (c[i] == c[i + 1] - 1) {

           sep = true;

       }

   }

   return 0;

}

Alte întrebări interesante