[C] Programma norma a infinito.

Messaggioda Nicole29 » 09/05/2018, 11:11

Buongiorno, sto creando un programma che data una matrice in input ne calcoli la norma a infinito.
Vi posto il mio programma ma penso che ci sia qualcosa che non va con la funzione...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define maxrighe 100
#define maxcolonne 100

void normaainfinito (int a[][], int r, int c) {
int i, j;
double max = 0.0;

for (i=0; i<r; i++) {
double sum = 0.0;
for (j=0; j<c; j++){
sum = sum + fabs(a[i][j]);
}
if (sum > max ) {
max = sum;
}
}
printf ("La norma a infinito e' %f\n", max);
}



int main () {
int matrice[maxrighe][maxcolonne];
int i,j;
int righe;
int colonne;
void normaainfinito (int a[][], int r, int c);



printf ("Inserisci il numero di righe!\n");
scanf ("%i", &righe);
printf ("Inserisci il numero di colonne!\n");
scanf ("%i", &colonne);

if (righe < 0 || colonne < 0) {
printf ("Errore: Inserire numeri positivi\n");
}

else {
printf ("Inserire gli elementi della matrice\n");

for (i=0; i<righe; i++) {
for (j=0; j<colonne; j++) {
scanf ("%i", &matrice[i][j]);
}
}

printf ("La matrice inserita e' : \n");
for (i=0; i<righe; i++) {
for (j=0; j<colonne; j++) {
printf ("%2i ", matrice[i][j]);
}
printf ("\n");
}


normaainfinito(matrice, righe, colonne);
}

return 0;
}
Nicole29
Junior Member
Junior Member
 
Messaggio: 51 di 126
Iscritto il: 15/12/2017, 16:54

Re: [C] Programma norma a infinito.

Messaggioda Super Squirrel » 09/05/2018, 13:33

Alcune osservazioni:

- per postare il codice qui sul forum esiste la funzionalità Code;
- scrivi codice indentato, risulterà più chiaro e leggibile sia a te che agli altri;
- cosa rappresenta la seguente riga di codice nel main?
Codice:
void normaainfinito (int a[][], int r, int c);

- una volta che controlli che i valori di righe e colonne inseriti siano positivi, tanto vale anche controllare che non siano maggiori di maxrighe e maxcolonne rispettivamente.

Vi posto il mio programma ma penso che ci sia qualcosa che non va con la funzione...


Magari potresti anche spiegare quale problema hai avuto... il codice non compila? il codice compila, ma il risultato non è quello che ti aspettavi?
In questo caso presumo che il problema sia che il codice non compila. Il motivo è che devi specificare le dimensioni della matrice a (argomento della funzione normaainfinito) che dovranno essere maxrighe e maxcolonne. In realtà basterebbe solo la seconda dimensione della matrice (ossia il numero di colonne).
Chi dorme in democrazia, si sveglia in dittatura.
Super Squirrel
Senior Member
Senior Member
 
Messaggio: 199 di 1486
Iscritto il: 16/05/2013, 22:05

Re: [C] Programma norma a infinito.

Messaggioda Nicole29 » 09/05/2018, 14:17

Allora il programma mi dava errore perché come hai detto tu non specificavo le dimensioni della matrice a..ho corretto scrivendo a[100][100]
Nicole29
Junior Member
Junior Member
 
Messaggio: 52 di 126
Iscritto il: 15/12/2017, 16:54

Re: [C] Programma norma a infinito.

Messaggioda Super Squirrel » 09/05/2018, 15:24

Con programma in questo contesto ci si riferisce di solito all'eseguibile creato a partire dal codice e non all'IDE.
Quindi dire "il programma mi dava errore", quando invece è il compilatore a segnalare un errore nel codice, può risultare ambiguo.
Inoltre ti può essere utile sapere che il compilatore non si limita a dire c'è un errore, ma specifica anche le righe di codice incriminate e fornisce una breve descrizione dell'errore.

Una curiosità, se hai definito maxrighe e maxcolonne perchè poi scrivi a[100][100] ?!
Chi dorme in democrazia, si sveglia in dittatura.
Super Squirrel
Senior Member
Senior Member
 
Messaggio: 200 di 1486
Iscritto il: 16/05/2013, 22:05


Torna a Informatica

Chi c’è in linea

Visitano il forum: Bing [Bot] e 1 ospite