Salut. Ma poate ajuta cineva cu aceasta problema de informatica clasa a 12-a? Este din testul de antrenament bac 2007 profil real varianta 18. (c++ va rog).
Răspunsuri la întrebare
Răspuns:
a)
int ordalfabetic(char *a){
int first_letter = (int) a[0];
for(int i = 1; a[i] != '\0'; i++){
if(first_letter > a[i]){
return 0;
}else{
first_letter = (int) a[i];
}
}
return 1;
}
b)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int ordalfabetic(char *a){
int first_letter = (int) a[0];
for(int i = 1; a[i] != '\0'; i++){
if(first_letter > a[i]){
return 0;
}else{
first_letter = (int) a[i];
}
}
return 1;
}
int main()
{
ifstream in("bac.txt");
int n;
int nr_seturi = 0;
char sir_cuvinte[10][128];
in >> n;
for(int i = 0; i < n; i++){
char cuvant[128] = "";
in >> cuvant;
strcpy(sir_cuvinte[i],cuvant);
}
for(int i = 0; i < n-1; i++){
char cuvintecat[128] = "";
char cuvintecat_invers[128] = "";
strcat(cuvintecat,sir_cuvinte[i]);
strcat(cuvintecat,sir_cuvinte[i+1]);
strcat(cuvintecat_invers,sir_cuvinte[i+1]);
strcat(cuvintecat_invers,sir_cuvinte[i]);
if(ordalfabetic(cuvintecat) || ordalfabetic(cuvintecat_invers)){
nr_seturi++;
}
}
cout << nr_seturi;
}
Explicație: La punctul b) am folosit functia de la punctul a).