Să fie în C++. Mulțumesc anticipat.
Se consideră șirurile de caractere S1, S2 și S3. Scrieți un program care va determina care dintre șirurile S1, S2 și S3 conține mai multe cifre, apelând repetat subprogramul care determină numărul de cifre dintr-un șir de caractere S.
Datele de intrare se vor citi din fișierul var20.in, calculele se vor organiza prin aplicarea funcțiilor utilizatorului, iar rezultatele se vor scrie în fișierul var20.out.
(Poza)
Răspunsuri la întrebare
Răspuns:
nu am identificat care sir contine mai multe ca cred e mai eficient sa te uiti in fisierul aut decat sa faci in zadar atâtea verificări. e posibil unul din siruri să conţină mai multe cifre, sau două din ele , sau toate trei
Explicație:
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("var20.in");
ofstream fout("var20.out");
char s1[200],s2[200],s3[200], cifre[]="0123456789";
int c1,c2,c3;
void nrcifre(char s[], int &c)
{
for (int i=0; i<strlen(s); ++i)
if (strchr(cifre,s[i])) ++c;
}
int main()
{
fin.getline(s1,200);
nrcifre(s1,c1);
fin.getline(s2,200);
nrcifre(s2,c2);
fin.getline(s3,200);
nrcifre(s3,c3);
fout << "sirul S1 contine " << c1 << " cifre \n";
fout << "sirul S2 contine " << c2 << " cifre \n";
fout << "sirul S3 contine " << c3 << " cifre \n";
}
v[1]=c1; v[2]; v[3]=c3; maxim=v[1];
if (v[2] > maxim) maxim=v[2];
if (v[3] > maxim) maxim=v[3];
fout << "Mai multe cifre contine: ";
for (i=1; i < 4; ++i)
if (v[i]==maxim)
fout << "sirul S" << i << "; ";
int v[4], maxim, i;
v[1]=c1; v[2]; v[3]=c3; maxim=v[1];
if (v[2] > maxim) maxim=v[2];
if (v[3] > maxim) maxim=v[3];
fout << "Mai multe cifre contine: ";
for (i=1; i < 4; ++i)
if (v[i]==maxim)
fout << "sirul S" << i << "; ";