metal07
03-01-2014, 11:38
#include <stdio.h>
#include <stdlib.h>
/*Esercizio
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 massimo_somme(int[]);
void main()
{
int A[100][100], B[100];
int i,j,n,m;
int somma,risultato;
printf("\nInserire il numero di righe (<100): "); //DEFINIZIONE NUMERO RIGHE
scanf("%d", &n);
printf("\nInserire il numero di colonne (<100): "); //DEFINIZIONE NUMERO COLONNE
scanf("%d", &m);
for(i=0;i<n;i++) //CREO L'ARRAY BIDIMENSIONALE CON I VALORI INSERITI
for(j=0;j<m;j++)
scanf("%d", &A[i][j]);
for(i=0;i<n;i++) //SOMMA DI OGNI RIGA, POSIZIONANDO IL RISULTATO IN UN ARRAY MONODIMENSIONALE
{
somma=0;
for(j=0;j<m;j++){
somma= somma+A[i][j];
}
B[i]= &somma;
}
risultato=massimo_somme(B[100]); //CHIAMATA ALLA FUNCTION CHE CALCOLA IL MASSIMO DELLE SOMME INSERITE NELL'ARRAY MONODIMENSIONALE
printf("\nIl massimo delle somme e': %d", risultato);
}
int massimo_somme(int x[]){ //FUNCTION CALCOLO MASSIMO
int max=0;
int i;
for(i=0;i<100;i++)
if(max<x[i]){
max=x[i];
}
return max;
}
Il programma crasha dopo aver inserito i dati. Dove sbaglio? :cry:
#include <stdlib.h>
/*Esercizio
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 massimo_somme(int[]);
void main()
{
int A[100][100], B[100];
int i,j,n,m;
int somma,risultato;
printf("\nInserire il numero di righe (<100): "); //DEFINIZIONE NUMERO RIGHE
scanf("%d", &n);
printf("\nInserire il numero di colonne (<100): "); //DEFINIZIONE NUMERO COLONNE
scanf("%d", &m);
for(i=0;i<n;i++) //CREO L'ARRAY BIDIMENSIONALE CON I VALORI INSERITI
for(j=0;j<m;j++)
scanf("%d", &A[i][j]);
for(i=0;i<n;i++) //SOMMA DI OGNI RIGA, POSIZIONANDO IL RISULTATO IN UN ARRAY MONODIMENSIONALE
{
somma=0;
for(j=0;j<m;j++){
somma= somma+A[i][j];
}
B[i]= &somma;
}
risultato=massimo_somme(B[100]); //CHIAMATA ALLA FUNCTION CHE CALCOLA IL MASSIMO DELLE SOMME INSERITE NELL'ARRAY MONODIMENSIONALE
printf("\nIl massimo delle somme e': %d", risultato);
}
int massimo_somme(int x[]){ //FUNCTION CALCOLO MASSIMO
int max=0;
int i;
for(i=0;i<100;i++)
if(max<x[i]){
max=x[i];
}
return max;
}
Il programma crasha dopo aver inserito i dati. Dove sbaglio? :cry: