#2997
prescurtat
C++
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 instituții de învățământ și doar cuvintele din mulțimea {COLEGIUL
, LICEUL
, NATIONAL
, TEORETIC
} pot fi prescurtate, eliminându-se ultimele lor litere. Funcția va returna tot prin intermediul parametrului s
numele instituției scris fără prescurtări.
Simulare bacalaureat 2019
Problema | prescurtat | Operații I/O |
prescurtat.in /prescurtat.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #41884391 | Utilizator | |
Fișier | prescurtat.cpp | Dimensiune | 577 B |
Data încărcării | 07 Februarie 2023, 14:13 | Scor / rezultat | Eroare de compilare |
prescurtat.cpp:5:43: warning: left operand of comma operator has no effect [-Wunused-value] void Prescurtat(char s[4][50]=("COLEGIUL","NATIONAL","TEORETIC","LICEUL")) ^ prescurtat.cpp:5:54: warning: right operand of comma operator has no effect [-Wunused-value] void Prescurtat(char s[4][50]=("COLEGIUL","NATIONAL","TEORETIC","LICEUL")) ^ prescurtat.cpp:5:65: warning: right operand of comma operator has no effect [-Wunused-value] void Prescurtat(char s[4][50]=("COLEGIUL","NATIONAL","TEORETIC","LICEUL")) ^ prescurtat.cpp:5:74: error: could not convert '(0, "LICEUL")' from 'const char [7]' to 'char (*)[50]' void Prescurtat(char s[4][50]=("COLEGIUL","NATIONAL","TEORETIC","LICEUL")) ^ prescurtat.cpp: In function 'void Prescurtat(char (*)[50])': prescurtat.cpp:9:23: error: cannot convert 'char (*)[50]' to 'const char*' for argument '1' to 'size_t strlen(const char*)' for(i=0;i<strlen(s);i++) ^ prescurtat.cpp:10:18: warning: comparison with string literal results in unspecified behaviour [-Waddress] if(s[i]==".") ^ prescurtat.cpp:13:21: warning: comparison with string literal results in unspecified behaviour [-Waddress] while(s[j]!=" " && j>0) ^ prescurtat.cpp:15:23: error: invalid conversion from 'char' to 'char*' [-fpermissive] strcpy(c,s+i+1); ^ prescurtat.cpp:15:23: error: cannot convert 'char (*)[50]' to 'const char*' for argument '2' to 'char* strcpy(char*, const char*)' prescurtat.cpp:16:16: error: invalid conversion from 'char*' to 'char' [-fpermissive] c=s[j+1]; ^ prescurtat.cpp:17:13: error: incompatible types in assignment of 'const char [2]' to 'char [50]' s[j]="\0"; ^ prescurtat.cpp:18:15: warning: comparison with string literal results in unspecified behaviour [-Waddress] if(c=="C") ^ prescurtat.cpp:18:15: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] prescurtat.cpp:19:32: error: cannot convert 'char (*)[50]' to 'char*' for argument '1' to 'char* strcat(char*, const char*)' strcat(s,"COLEGIUL"); ^ prescurtat.cpp:20:20: warning: comparison with string literal results in unspecified behaviour [-Waddress] else if(c=="N") ^ prescurtat.cpp:20:20: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] prescurtat.cpp:21:32: error: cannot convert 'char (*)[50]' to 'char*' for argument '1' to 'char* strcat(char*, const char*)' strcat(s,"NATIONAL"); ^ prescurtat.cpp:22:20: warning: comparison with string literal results in unspecified behaviour [-Waddress] else if(c=="T") ^ prescurtat.cpp:22:20: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] prescurtat.cpp:23:32: error: cannot convert 'char (*)[50]' to 'char*' for argument '1' to 'char* strcat(char*, const char*)' strcat(s,"TEORETIC"); ^ prescurtat.cpp:24:20: warning: comparison with string literal results in unspecified behaviour [-Waddress] else if(c=="L") ^ prescurtat.cpp:24:20: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] prescurtat.cpp:25:30: error: cannot convert 'char (*)[50]' to 'char*' for argument '1' to 'char* strcat(char*, const char*)' strcat(s,"LICEUL"); ^ prescurtat.cpp:26:19: error: cannot convert 'char (*)[50]' to 'char*' for argument '1' to 'char* strcat(char*, const char*)' strcat(s,c); ^ prescurtat.cpp:8:11: warning: unused variable 't' [-Wunused-variable] int i,t,j; ^ prescurtat.cpp: In function 'int main()': prescurtat.cpp:37:17: error: cannot convert 'char*' to 'char (*)[50]' for argument '1' to 'void Prescurtat(char (*)[50])' Prescurtat(s); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema prescurtat face parte din a doua categorie. Pentru aceste probleme se folosește un program suport, furnizat de propunătorul problemei. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.