for(int i=0; i<numRighe; i++)
for(int j=0; j<numColonne; j++) {
//corpo del ciclo
}
sisi errore di distrazione il primo
se chiede il massimo tra le somme degli elementi di ogni riga.
int array2d(int a[][100],int r,int c)
{
int i,j,somma,max;
max=a[0][0];
for (i=0; i<r; i++){
somma=0;
for(j=0; j<c; j++) {
somma = somma + a[i][j];
}
if(somma>max) max=somma;
}
return max;
}
Attento, hai sbagliato a inizializzare la variabile "somma"Occhio che non l'hai risolto. Nemmeno m'impedisce di porre r e c a 1000 e far scoppiare l'array.
certo, ma come hai fatto tu, a partire dalla seconda riga in poi, somma conterrà la somma di tutti gli elementi delle righe precedenti + la somma degli elementi della riga corrente
e quel if (somma>max) fuori da entrambi i cicli for ovviamente non fa il suo dovere
la somma è relativa ad ogni singola riga, alla successiva va riazzerata
la soluzione corretta è questa
C:int array2d(int a[][100],int r,int c) { int i,j,somma,max; max=a[0][0]; for (i=0; i<r; i++){ somma=0; for(j=0; j<c; j++) { somma = somma + a[i][j]; } if(somma>max) max=somma; } return max; }
l'ho scritto nel controllo che deve essere minore o uguale a 100rimane il problema delle dimensioni della matrice
r e c va controllato che non superino R e C rispettivamente
#include <stdio.h>
#define R 100
#define C 100
double array2D( double a[][100],int ,int);
main()
{
int r,c,i,j;
double a[R][C],max;
/* quante righe */
printf("quante righe vuoi? (<=100): ");
scanf("%d",&r);
/* quante colonne*/
printf("\nquante colonne vuoi? (<=100): ");
scanf("%d",&c);
/*carichiamo la matrice*/
printf("\ncarica la matrice\n\n");
for(i=0; i<r; i++){
for (j=0; j<c; j++){
printf("inserire valore %d riga %d colonna: ",i+1,j+1);
scanf("%lf",&a[i][j]);
}
}
}
double array2D( double a[][100],int r ,int c)
{
int i,j;
double somma,max;
max=a[0][0];
/* facciamo la somma*/
for (j=0 ;j<r; j++){
somma=0;
for (i=0; i<r; i++)
{
somma+=a[i][j];
}
printf("la riga vale:%lf",somma);
}}
l'ho scritto nel controllo che deve essere minore o uguale a 100
potrei anche utilizzare una bella if o una while cioè
while(r>=1 && r<=100) do....
oppure if(rr>=1 && r<=100)
#include <stdio.h>
#define R 100
#define C 100
double array2D( double a[][100],int,int);
main()
{
int i,j;
double a[R][C],max,r,c;
/* quante righe */
printf("quante righe vuoi? (<=100): ");
scanf("%lf",&r);
/* quante colonne*/
printf("\nquante colonne vuoi? (<=100): ");
scanf("%lf",&c);
/*carichiamo la matrice*/
printf("\ncarica la matrice\n\n");
for(i=0; i<r; i++){
for (j=0; j<c; j++){
printf("inserire valore %d riga %d colonna: ",i+1,j+1);
scanf("%lf",&a[i][j]);
}}
max=array2D(a,r,c);
printf("\nil massimo:%lf",max);
}
double array2D( double a[][100],int r ,int c)
{
int i,j;
double somma,max;
somma=0;
/* facciamo la somma*/
for (j=0; j<c; j++)
{
somma=0;
for (i=0; i<r;i++)
{
somma+=a[i][j];
}
printf("la somma:%lf",somma);
if(somma>max)
max=somma;
}
return max;
}
[01] [32] [47] [52]
[99] [02] [27] [36]
[-3] [-5] [08] [07]
[42] [22] [68] [15]
for col = 0; col < numCols; col++ {
for row = 0; row < numRows; row++ {
num = matrix[row][col]
}
}
sum = int[numCols]
for col = 0; col < numCols; col++ {
for row = 0; row < numRows; row++ {
sum[col] += matrix[row][col]
}
}
#include <stdio.h>
int main()
{
double a = 3;
double b = 7;
a = a + b;
printf("%.2f", a); // 10.00
return 0;
}