summaryrefslogtreecommitdiff
path: root/I_anno/Programmazione_1
diff options
context:
space:
mode:
authorSanto Cariotti <dcariotti24@gmail.com>2020-01-22 22:32:56 +0100
committerSanto Cariotti <dcariotti24@gmail.com>2020-01-22 22:32:56 +0100
commit199dde441bd19bacaa3435b770649cd415651a97 (patch)
treed882c0a2b0fd99d227860d054285b27c35a2e0cb /I_anno/Programmazione_1
parentb9ac84d27a7d7152e15dfe2ebc422e1f1697659b (diff)
ex 2 23/07/19
Scrivere un metodo che prenda in input una matrice quadrata Q di stringhe e restituisca il valore booleano true se la stringa piu lunga della diagonale principale di Q contiene un numero di vocali minore della stringa piu` corta della diagonale stessa. NB: Si assuma che le stringhe della diagonale principale abbiano lunghezze differenti e sempre maggiori di zero.
Diffstat (limited to 'I_anno/Programmazione_1')
-rw-r--r--I_anno/Programmazione_1/ex2_23_07_19.cc44
1 files changed, 44 insertions, 0 deletions
diff --git a/I_anno/Programmazione_1/ex2_23_07_19.cc b/I_anno/Programmazione_1/ex2_23_07_19.cc
new file mode 100644
index 0000000..3b0ed37
--- /dev/null
+++ b/I_anno/Programmazione_1/ex2_23_07_19.cc
@@ -0,0 +1,44 @@
+#include<iostream>
+
+using namespace std;
+
+template<int N>
+bool func(string (&Q)[N][N]) {
+ string stringaL = Q[0][0];
+ string stringaC = Q[0][0];
+ for(int i = 0; i < N; ++i) {
+ if(Q[i][i].length() > stringaL.length())
+ stringaL = Q[i][i];
+ else if(Q[i][i].length() < stringaC.length())
+ stringaC = Q[i][i];
+ }
+
+ short vocaliL{};
+ short vocaliC{};
+
+ for(auto& c : stringaL) {
+ c = tolower(c);
+ if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
+ ++vocaliL;
+ }
+
+ for(auto& c : stringaC) {
+ c = tolower(c);
+ if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
+ ++vocaliC;
+ }
+
+ return vocaliL < vocaliC;
+}
+
+int main() {
+ string A[3][3] = {
+ {"lllll", "bb", "cc"},
+ {"AAA", "e", "cc"},
+ {"AAA", "bb", "cc"},
+ };
+
+ cout << func(A);
+
+ return 0;
+}