vuoi
o PayPal
tutte le volte che vuoi
int s[dim];
int conta;
// Inserimento dei valori nell'array v
printf("Inserisci %d valori nel vettore v[]:\n", dim);
for (int i = 0; i < dim; i++)
{ printf("v[%d]: ", i);
scanf("%d", &v[i]);
}
// Seleziona un elemento sì e due no a partire dal primo
conta = f(v, dim, s);
// Stampa il nuovo vettore
if (conta == 0)
{ printf("Non ci sono elementi nel nuovo vettore.\n");
}
else
{ printf("Nuovo vettore: \n");
for (int i = 0; i < conta; i++)
{ printf("%d ", s[i]);
}
printf("\n");
}
return 0;
}
ESERCIZIO 2
//Si consideri una matrice quadrata di numeri interi. Scrivere una funzione che
restituisca la somma
//degli indici delle colonne dove ci sia almeno uno zero.
#include <stdio.h>
#include <stdlib.h>
#define dim 3
// Funzione che verifica se il numero di righe con somma nulla è minore di cinque
int verificaRigheSommaNulla(int mat[][dim]);
// Funzione che trova l'indice della prima colonna con zero per ogni riga
void trovaPrimiZero(int mat[][dim], int risultati[]);
// Funzione che calcola la somma degli indici delle colonne contenenti almeno uno zero
int sommaIndiciColonneConZero(int mat[][dim]);
int main()
{ int mat[dim][dim];
int risultato;
int primiZero[dim];
// Inserimento dei valori nella matrice mat
for (int i = 0; i < dim; i++)
{ for (int j = 0; j < dim; j++)
{ printf("Inserisci valore mat[%d][%d]: ", i, j);
scanf("%d", &mat[i][j]);
}
}
// Verifica se il numero di righe con somma nulla è minore di 5
risultato = verificaRigheSommaNulla(mat);
// Stampa del risultato
if (risultato)
printf("Il numero di righe con somma nulla è minore di cinque.\n");
else
printf("Il numero di righe con somma nulla NON è minore di cinque.\n");
// Trova il primo zero per ogni riga
trovaPrimiZero(mat, primiZero);
// Stampa il risultato
printf("Indici della prima colonna con zero per ogni riga:\n");
for (int i = 0; i < dim; i++)
{ printf("Riga %d: %d\n", i, primiZero[i]);
}
// Calcola la somma degli indici delle colonne contenenti almeno uno zero
int sommaIndici = sommaIndiciColonneConZero(mat);
printf("Somma degli indici delle colonne contenenti almeno uno zero: %d\n",
sommaIndici);
return 0;
}
// Funzione che verifica se il numero di righe con somma nulla è minore di 5
int verificaRigheSommaNulla(int mat[][dim])
{ int numeroRigheNulla = 0;
// Scorri tutte le righe
for (int i = 0; i < dim; i++)
{ int somma = 0;
// Somma gli elementi della riga
for (int j = 0; j < dim; j++)
{ somma += mat[i][j];
}
// Se la somma della riga è nulla, incrementa il contatore
if (somma == 0)
{ numeroRigheNulla++;
}
}
// Restituisci vero (1) se il numero di righe con somma nulla è minore di 5, altrimenti
falso (0)
return numeroRigheNulla < 5;
}
// Funzione che trova l'indice della prima colonna con zero per ogni riga
void trovaPrimiZero(int mat[][dim], int risultati[])
{ for (int i = 0; i < dim; i++)
{ risultati[i] = -1; // Valore di default se non ci sono zeri nella riga
for (int j = 0; j < dim; j++)
{ if (mat[i][j] == 0)
{ risultati[i] = j; // Salva l'indice della prima colonna con zero
break; // Esci dal ciclo appena trovi il primo zero
}
}
}
}
// Funzione che calcola la somma degli indici delle colonne contenenti almeno uno zero
int sommaIndiciColonneConZero(int mat[][dim])
{ int colHasZero[dim] = {0}; // Array per tenere traccia delle colonne con almeno uno
zero
int somma = 0;
for (int i = 0; i < dim; i++)
{ for (int j = 0; j < dim; j++)
{ if (mat[i][j] == 0)
{ colHasZero[j] = 1; // Segna la colonna come contenente almeno uno zero
}
}
}
// Somma gli indici delle colonne che contengono almeno uno zero
for (int j = 0; j < dim; j++)
{ if (colHasZero[j])
{ somma += j;
}
}
return somma;