View Full Version : [c] ragazzi potete vedere se le ho implementate bene queste due funzioni ??
Funzione 1
/* Sviluppare una function C che, dati come parametri di input un array 2D di int, il numero delle righe e il numero delle colonne, determina e restituisce come parametro di output il massimo tra le somme degli elementi di ogni riga.*/
int MaxRig(int vet[][], int c, int r)
{
int max, sum;
int i, j;
for(i = 0, max = 0; i < c; i++)
max += vet[0][i];
for (i = 1, sum = 0; i < r; i++)
{
for(j = 0; j < c; j++)
sum += vet[i][j];
if(sum > max)
max = sum;
}
return max;
}
/*
Sviluppare una function C che, dati come parametri di input un array 2D di double, il numero delle righe e il numero delle colonne, determina e restituisce come parametro di output il massimo tra le somme degli elementi di ogni colonna.*/
double MaxCol(double vet[][], int c, int r)
{
double max, sum;
int i, j;
for(i = 0, max = 0; i < r; i++)
max += vet[0][i];
for (i = 1, sum = 0; i < c; i++)
{
for(j = 0; j < r; j++)
sum += vet[i][j];
if(sum > max)
max = sum;
}
return max;
}
Indenta il codice per favore :)
La traccia chiedeva solo l'implementazione delle funzioni non ho scritto il codice ma solo la funzione
La traccia chiedeva solo l'implementazione delle funzioni non ho scritto il codice ma solo la funzione
ti hanno chiesto di indentare il codice perche cosi è molto poco leggibile
scrivi il tuo codice tra i tag [CODE]
Codice{
Indentato
}
L'indentatura è una delle basi della programmazione, quindi immagino che la conosci già, altrimenti cerca su google.
p.s. Per codice non si intende il sorgente..un frammento di codice potrebbe essere anche questo
...
printf("Edita il tuo codice come suggerito se vuoi un aiuto");
...
:D
bancodeipugni
03-02-2014, 19:48
dovrebbe andare bene solo non ho capito il motivo di questa inizializzazione
for(i = 0, max = 0; i < c; i++)
max += vet[0][i];
max una volta inizializzato a 0 lo trovi anche se escludi la somma riga 0 di cui sopra
poi nel secondo chiede il massimo delle somme di colonna, quindi dovresti perlomeno invertire gli indici: cosi' l'hai scritto uguale all'altro
Oceans11
03-02-2014, 21:59
dovrebbe andare bene solo non ho capito il motivo di questa inizializzazione
for(i = 0, max = 0; i < c; i++)
max += vet[0][i];
max una volta inizializzato a 0 lo trovi anche se escludi la somma riga 0 di cui sopra
No, se i numeri sono tutti negativi.
bancodeipugni
03-02-2014, 22:15
vero ;)
basta inizializzare max a -32767 ;)
Oceans11
04-02-2014, 11:40
vero ;)
basta inizializzare max a -32767 ;)
potrebbe, ma sicuramente questa inizializzazione dipende dalla piattaforma (larghezza del bus + compilatore).
Ad esempio, sul mio sistema, un signed int è definito così:
# define INT_MIN (-INT_MAX - 1)
# define INT_MAX 2147483647
A mio parere ha fatto bene ad inizializzare max in quel modo.
ps: non ne sono sicuro, ma potrebbe essere che il valore minimo nel tuo caso sia -32768. Curiosità, su quale macchina e con quale compilatore hai gli int a 16 bit?
lorenzo001
04-02-2014, 12:33
basta inizializzare max a -32767 ;)
A 16 bit comunque è -32768 ... e dubito tu lavori con un sistema i cui int siano a 16 bit.
poi nel secondo chiede il massimo delle somme di colonna, quindi dovresti perlomeno invertire gli indici: cosi' l'hai scritto uguale all'altro
anche per il secondo sum devo invertire gli indici ? ho modificato cosi il codice !
int MaxRig(int vet[][], int c, int r)
{
int max, sum;
int i, j;
for(i = 0, max = 0; i < c; i++)
max += vet[i][0];
for (i = 1, sum = 0; i < r; i++)
{
for(j = 0; j < c; j++)
sum += vet[i][j];
if(sum > max)
max = sum;
}
return max;
}
double MaxCol(double vet[][], int c, int r)
{
double max, sum;
int i, j;
for(i = 0, max = 0; i < r; i++)
max += vet[0][i];
for (i = 1, sum = 0; i < c; i++)
{
for(j = 0; j < r; j++)
sum += vet[j][i];
if(sum > max)
max = sum;
}
return max;
}
bancodeipugni
04-02-2014, 21:30
nel borlandc erano a 16 bit ma chiaramente mi aspettavo interventi come quelli sopra sulla cifra :D
in base a dove vuoi usare il prg regolati di conseguenza, ma sinceramente in un esercizio didattico pensavo andasse bene ancora l'equazione interi a 2 byte char a 1 ecc
no gli indici vanno invertiti nel secondo perchè di diverso a parte il float chiede le colonne
ah anche nel secondo va inizializzato max al min ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.