92 lines
2.5 KiB
C++
92 lines
2.5 KiB
C++
/*
|
||
Nome: Mario
|
||
Cognome: Montanari
|
||
Classe: 3AIN
|
||
Data: 10/01/2025
|
||
|
||
Completare il programma dato il main (da
|
||
non modificare)
|
||
Il programma dovrà:
|
||
● riempire una matrice di valori casuali;
|
||
● impostare le colonne 2 e 4 con almeno 3
|
||
valori consecutivi successivi (es: ..., 14,
|
||
15, 16. ...);
|
||
● analizzare l’intera matrice alla ricerca
|
||
di eventuali colonne contenenti almeno 3
|
||
valori consecutivi successivi e stamparle;
|
||
● altro come richiesto dal main (da non
|
||
modificare);
|
||
*/
|
||
|
||
#include<iostream>
|
||
#include <iomanip>
|
||
|
||
using namespace std;
|
||
|
||
typedef struct {
|
||
int x, r;
|
||
bool y;
|
||
char z;
|
||
int w[10];
|
||
} studente, insegnante;
|
||
|
||
void generaMatrice(int m[][10], size_t righe, size_t colonne);
|
||
void stampaMatrice(int m[][10], size_t righe, size_t colonne);
|
||
void modificaColonne(int m[][10], size_t righe);
|
||
void stampaColonneConsecutive(int m[][10], size_t righe, size_t colonne);
|
||
|
||
int main() {
|
||
srand(time(0));
|
||
|
||
int matrice[5][10];
|
||
int righe = 5, colonne = 10;
|
||
|
||
generaMatrice(matrice, righe, colonne);
|
||
cout << "Matrice generata:" << endl;
|
||
stampaMatrice(matrice, righe, colonne);
|
||
|
||
modificaColonne(matrice, righe);
|
||
cout << "\nMatrice modificata (colonne 2 e 4 con valori successivi):" << endl;
|
||
stampaMatrice(matrice, righe, colonne);
|
||
|
||
cout << endl << "Colonne con valori consecutivi: " << endl;
|
||
stampaColonneConsecutive(matrice, righe, colonne);
|
||
|
||
return 0;
|
||
}
|
||
|
||
void generaMatrice(int m[][10], size_t righe, size_t colonne) {
|
||
for(size_t i=0; i<righe; i++)
|
||
for(size_t j=0; j<colonne; j++)
|
||
m[i][j] = rand()%40+10;
|
||
}
|
||
|
||
void stampaMatrice(int m[][10], size_t righe, size_t colonne) {
|
||
for(size_t i=0; i<righe; i++) {
|
||
for(size_t j=0; j<colonne; j++)
|
||
cout << setw(4) << m[i][j];
|
||
cout << endl;
|
||
}
|
||
}
|
||
|
||
void modificaColonne(int m[][10], size_t righe) {
|
||
size_t riga = rand()%(righe-2)+1;
|
||
m[riga-1][2] = m[riga][2]-1;
|
||
m[riga+1][2] = m[riga][2]+1;
|
||
|
||
riga = rand()%(righe-2)+1;
|
||
m[riga-1][4] = m[riga][4]-1;
|
||
m[riga+1][4] = m[riga][4]+1;
|
||
}
|
||
|
||
void stampaColonneConsecutive(int m[][10], size_t righe, size_t colonne) {
|
||
for(size_t j=0; j<colonne; j++) {
|
||
for(size_t i=1; i<righe-1; i++) {
|
||
if(m[i-1][j] == m[i][j]-1 && m[i+1][j] == m[i][j]+1) {
|
||
for(size_t k=0; k<righe; k++)
|
||
cout << setw(4) << m[k][j];
|
||
cout << endl;
|
||
}
|
||
}
|
||
}
|
||
} |