Sunteți pe pagina 1din 3

#799 Să se scrie un program care citeşte de la tastatură un şir

Să se scrie un program care citește un șir de caractere de cel mult 100 de caractere,format din cuvinte şi
în care cuvintele sunt formate numai din litere mici ale numere, separate prin unul sau mai multe spa ții.
alfabetului englez și sunt separate prin câte un spa țiu și Cuvintele sunt formate numai din litere ale alfabetului
elimină litera din mijloc a fiecărui cuvânt cu număr impar englez. Toate numerele sunt reale, pozitive şi sunt
de litere (cel puțin trei). formate numai din parte întreagă sau din parte întreagă
şi parte fracționară, separate prin punctul zecimal (.).
#include <iostream> Programul va elimina din şir toate numerele care au
#include <cstring> parte fracționară.
using namespace std;
int main() #include <iostream>
{ #include <cstring>
int mod=0; using namespace std;
char s[105],aux[105]; int main()
cin.getline(s,105); {
int n=strlen(s); int nr=0,j,punct;
for(int i=0; i<=n; i++) char s[205];
if(s[i]!=' ') cin.getline(s,205);
{ int n=strlen(s);
int j=i; for(int i=0; i<=n; i++)
while(isalpha(s[j+1]) and j<n-1) if(isdigit(s[i])==true)
j++; {
if((j-i+1)%2==1 and j-i+1>=3) j=i,punct=0;
{ while(s[j]!=' ' and j<n)
strcpy(aux,s+i+(j-i)/2+1); {
strcpy(s+i+(j-i)/2,aux); if(s[j]=='.')
mod=1; punct=1,nr++;
} j++;
i=j; }
} if(punct)
if(mod) {
cout<<s; for(int l=j; l<=n; l++)
else s[i+l-j]=s[l];
cout<<"nu exista"; n=n-j+i;
return 0; }
} }
cout<<s;
return 0;
}

#807
#232 Se dă un şir de caractere ce conţine cuvinte formate din
litere mici ale alfabetului englez, separate prin unul sau
mai multe spații. Înaintea primului cuvânt nu există
spații, și nici după ultimul. Să se modifice șirul dat, astfel #include <iostream>
încât să se înlocuiască fiecare cuvânt cu exact trei litere #include <fstream>
din șir cu simbolul *. using namespace std;
ifstream f("prodmax.in");
ofstream g("prodmax.out");
#include <iostream>
int main()
#include <cstring> {
using namespace std; int n,m,a[105][105],maxim=-1;
int main() f>>n>>m;
{ for(int i=1;i<=m;i++)
char s[260],aux[260]; a[n+1][i]=1;
cin.getline(s,260); for(int i=1;i<=n;i++)
{
int n=strlen(s),j;
for(int j=1;j<=m;j++)
for(int i=0; i<=n; i++) {f>>a[i][j];
if(s[i]!=' ' and (s[i-1]==' ' or i==0)) if(a[i][j]==2 and a[n+1][j])
{ a[n+1][j]++;
j=i+1; else
while(isalpha(s[j]) and j-i<3 and j<n) if(!a[i][j])
j++; a[n+1][j]=0;
}
if(j-i==3 and isalpha(s[j])==false)
}
{
for(int i=1;i<=m;i++)
strcpy(aux,s+i+3); if(a[n+1][i]>maxim)
s[i]='*'; maxim=a[n+1][i];
strcpy(s+i+1,aux); for(int i=1;i<=m;i++)
n=n-2; if(a[n+1][i]==maxim)
} g<<i<<" ";
return 0;
}
}
cout<<s;
return 0;
}

#2997
Scrieți funcția cu următorul antet:
void Prescurtat(char s[])
Funcția primește ca parametru un text de cel
mult 50 de caractere, alcătuit din cuvinte separate prin
câte un spațiu și formate din litere mari ale alfabetului
englez, urmate eventual de caracterul . (punct), dacă
sunt scrise prescurtat. Textul reprezintă numele unei
#220 instituții de învățământ și doar cuvintele din mul țimea
Se consideră tabloul bidimensional cu m linii şi n {COLEGIUL, LICEUL, NATIONAL, TEORETIC} pot fi
prescurtate, eliminându-se ultimele lor litere.
coloane, care conţine doar valorile {0,1,2}.
Funcția va returna tot prin intermediul
Să se determine numerele de ordine ale coloanelor parametrului s numele instituției scris fără prescurtări.
pentru care produsul elementelor este maxim.
m *= d;
void Prescurtat(char s[]) while(n % d == 0)
{ n /= d;
char *p=strtok(s," "), }
d ++;
if(d * d > n)
aux[305],c[]="COLEGIUL",l[]="LICEUL",n[]="NATIONAL"
d = n;
,t[]="TEORETIC";
}
aux[0]='\0';
cout << m;
while(p)
return 0;
{
}
int m=strlen(p);
if(p[m-1]=='.')
{
p[m-1]='\0';
if(strstr(c,p))
strcat(aux,c);
if(strstr(l,p))
strcat(aux,l);
if(strstr(n,p))
strcat(aux,n);
if(strstr(t,p))
strcat(aux,t);
}
else
strcat(aux,p);
p=strtok(NULL," ");
if(p)strcat(aux," ");
}
strcpy(s,aux);
}

#2821
Se citește un număr natural, n (n≥2) și se cere să se
scrie cel mai mic număr natural care are aceia și divizori
primi ca n.
#include <iostream>
using namespace std;
int main()
{
int n, m = 1, d = 2;
cin >> n;
while(n > 1)
{
if(n % d == 0)
{

S-ar putea să vă placă și