Esercizi in C – Lezione del 16 ottobre

Premi qui per scaricare il PDF

Esercizio 1

Scrivere un programma in C che dichiara una matrice di interi 10 x 10 e chiede un numero intero compreso tra 1 e 100 all’utente (controllare). Tale numero sarà “l’origine degli assi della matrice” (posizione in alto a sinistra). Il resto della matrice dovrà essere costruito realizzando la tabella pitagorica a partire da tale numero, dove ogni elemento è pari al prodotto dell’elemento corrispondente nella prima riga e prima colonna. Visualizzare la matrice ottenuta.

 


#include <stdio.h>
#define R 10 //numero righe #define C 10 //colonna int main() { int mat[R][C]; int origine, i, j; do { printf("Inserisci un numero tra 1 a 100\n"); scanf("%d", &origine); if (origine < 1 || origine > 100) printf("Attenzione, inserisci un numero compreso tra 1 e 100"); } while (origine < 1 || origine > 100); for (i = 0; i < C; i++) //la prima riga sarà composta dal numero inserito dall'utente e i 10 numeri successivi mat[0][i] = i + origine; for (i = 1; i < R; i++) //la prima colonna sarà composta dal numero inserito dall'utente e i 9 numeri successivi (il primo numero è stato già messo) mat[i][0] = i + origine; for (i = 1; i < R; i++) { for (j = 1; j < C; j++) { mat[i][j] = mat[0][j] * mat [i][0]; printf("%d ", mat[i][j]); } printf("\n"); } return 0; }

Esercizio 2

Scrivere un programma in C che chiede all’utente di inserire due stringhe di al più 40 caratteri e (dopo che sono state interamente inserite) visualizza il numero di vocali uguali in posizione uguale. (si supponga che l’utente immetta stringhe solo con caratteri alfabetici e minuscoli).  INS

#include stdio.h
#include string.h
#define DIM 40 + 1 //in modo da avere un array da 40 caratteri + il tappo \0
#define n_vocali 5 //grandezza array delle vocali

int main()
{
	char s1[DIM], s2[DIM]; //le due stringhe
	char vocali[n_vocali] = {'a', 'e', 'i', 'o', 'u'}; //Inserisco le vocali nell'array di caratteri
	int cont, i, j, L1, L2; //contatori
	
	printf("Immetti la prima stringa\n");
	scanf("%s", s1); //Non va messa la & vicino alla variabile perchè è un array
	printf("Immetti la seconda stringa\n");
	scanf("%s", s2); //Non va messa la & vicino alla variabile perchè è un array
	
	L1 = strlen(s1); //Restituisce la lunghezza dell'array al netto del carattere tappo \0
	L2 = strlen(s2);
	cont = 0; //Contatore del numero di vocali
	
	//METODO 1 - PIU' MACCHINOSO MA PIU' EFFICIENTE, MENO ISTRUZIONI
	/*for (i = 0; i < L1 && i < L2; i++)
		if(s1[i] == 'a') || (s1[i] == 'e') || (s1[i] == 'i') || (s1[i] == 'o') || (s1[i] == 'u')) && (s1[i] == s2[i])
			cont ++;*/

	//METODO 2 - PIU' SEMPLICE
	for (i = 0; i < L1 && i < L2; i++) //Ciclo per la stringa
		for(j = 0; j < n_vocali; j++) //Ciclo per scandire l'array delle vocali
			if (s1[i] == vocali[j] && s1[i] == s2[i])
				cont ++;

	printf ("Il numero di vocali uguali in pos è %d", cont);

	return 0;
}

Premi qui per scaricare il PDF