Skip to content

Instantly share code, notes, and snippets.

@frabert
Last active January 6, 2017 09:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frabert/6b32c33c869b6754d93f9845be194055 to your computer and use it in GitHub Desktop.
Save frabert/6b32c33c869b6754d93f9845be194055 to your computer and use it in GitHub Desktop.
Scheletri per esercitazione
#include <stdio.h>
#include <stdlib.h>
// Funzioni da implementare
int *leggiInput(int *dim);
int *eliminaDup(int *vect, int dim, int *dim_nodup);
int ugualeASomma(int *vect, int dim);
int *maggioreDeiSuccessivi(int *vect, int dim);
int main() {
int *input, *nodup, *results;
int dim, dim_nodup, i;
// Legge l'input
input = leggiInput(&dim);
printf("Stampa dei valori in input: (%d valori)\n", dim);
for(i = 0; i < dim; i++) {
printf("%d\n", input[i]);
}
// Elimina i duplicati
nodup = eliminaDup(input, dim, &dim_nodup);
printf("Stampa dei valori senza duplicati: (%d valori)\n", dim_nodup);
for(i = 0; i < dim_nodup; i++) {
printf("%d\n", nodup[i]);
}
// Esegue ugualeASomma
printf("Risultato di ugualeASomma: %d\n", ugualeASomma(nodup, dim_nodup));
// Esegue maggioreDeiSuccessivi
results = maggioreDeiSuccessivi(nodup, dim_nodup);
printf("Risultato maggioreDeiSuccessivi:\n");
for(i = 0; i < dim_nodup; i++) {
printf("%d\n", results[i]);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
// Funzioni da implementare
int *leggiInput(int *dim);
int *eliminaNeg(int *vect, int dim, int *new_dim);
float *mediaEstremi(int *vect, int dim);
int main() {
int *input, *noneg;
float *results;
int dim, dim_noneg, i;
// Legge l'input
input = leggiInput(&dim);
printf("Stampa dei valori in input: (%d valori)\n", dim);
for (i = 0; i < dim; i++) {
printf("%d\n", input[i]);
}
// Elimina i negativi
noneg = eliminaNeg(input, dim, &dim_noneg);
printf("Stampa dei valori senza negativi: (%d valori)\n", dim_noneg);
for(i = 0; i < dim_noneg; i++) {
printf("%d\n", noneg[i]);
}
// Esegue media degli estremi
results = mediaEstremi(noneg, dim_noneg);
// Calcolo dimensionale dell'array results
dim = dim_noneg % 2 == 0 ? dim_noneg / 2 : dim_noneg / 2 + 1;
printf("Risultato di mediaEstremi:\n");
for(i = 0; i < dim; i++) {
printf("%3.2f\n", results[i]);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int tempi[10]; /* Tempi misurati ogni 100 metri */
char nome[20]; /* Nome dell'atleta */
} corridore;
/* Funzioni da implementare */
corridore *leggi_input(int *dim);
int trova_vincitore(corridore *vect, int dim);
int *tempi_to_intervalli(corridore c);
int *trova_sprint(corridore c);
int main() {
corridore *input;
int dim, dim_sprint, vincitore, i ,j;
int *intervalli, *sprint;
/* Legge l'input */
input = leggi_input(&dim);
printf("Stampa dei valori in input: (%d atleti)\n", dim);
for(i = 0; i < dim; i++) {
printf("Tempi per l'atleta %s:", input[i].nome);
for(j = 0; j < 10; j++) {
printf(" %d", input[i].tempi[j]);
}
printf("\n");
}
/* Trova il vincitore */
vincitore = trova_vincitore(input, dim);
printf("Nome del vincitore: %s (miglior tempo: %d secondi)\n",
input[vincitore].nome,
input[vincitore].tempi[9]);
/* Converti da tempi ad intervalli */
for(i = 0; i < dim; i++) {
intervalli = tempi_to_intervalli(input[i]);
printf("Intervalli per l'atleta %s:", input[i].nome);
for(j = 0; j < 10; j++) {
printf(" %d", intervalli[j]);
}
printf("\n");
free(intervalli);
}
/* Trova gli sprint */
for(i = 0; i < dim; i++) {
sprint = trova_sprint(input[i]);
printf("Sprint per l'atleta %s:", input[i].nome);
for(j = 0; j < 10; j++) {
printf(" %d", sprint[j]);
}
printf("\n");
free(sprint);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment