Programma con Matrici in c

di Anonimizzato20305 il
11 risposte
Salve ragazzi,ho un problema (molto banale) con questo programma e non riesco a capire perchè il compilatore mi generi un messaggio di warning
Penso si tratti di una sciocchezza,ma nonostante abbia modificato il programma piu volte, si ripete la stessa storia
Utilizzo una macchina virtuale quindi ho dovuto ricopiare a mano il codice.Scusate per eventuali errori nella trascrizione.

Comunque l'errore dovrebbe essere nell'Inserimento della matrice

#include <stdio.h>
#define MAX 10

int controllaMatrice(int x,int y);
void inserisci(int b[MAX][MAX],int x, int y);

int main() {

int n,m;

int v[MAX][MAX]={{0},{0}};

do{
printf("\nInserisci il numero di righe e colonne facendo attenzione che sia minore di 10");

printf("\nInserisci il numero di righe  ");
scanf("%d",&n);
printf("\nInserisci il numero di colonne  ");
scanf("%d",&m);
}
while( controllaMatrice(n,m) == 0);

inserisci(v[MAX][MAX],n,m);
return 0;
}

int controllaMatrice(int x,int y){
if( n>=10 || m>=10)
	return 0;
else 	
	return 1;
}

void inserisci(int b[MAX][MAX],int x, int y){

int i,j;

for( i=0; i<x; i++){
	for( j=0; j<y; j++){
	printf("\nInserisci l'elemento di indice[%d][%d]",i,j);
	scanf("%d",&b[i],[j]);
	}
	}
}


11 Risposte

  • Non so qual è il messaggio di warning che ti esce, dato che non l'hai scritto, ma a prima vista penso ci sia qualcosa da rivedere con questa funzione:
    int controllaMatrice(int x,int y){
    if( n>=10 || m>=10)
       return 0;
    else    
       return 1;
    }
    Al posto di n ed m penso tu volessi usare x ed y.

    Inoltre anche questa scanf nella funzione inserisci:
    scanf("%d",&b[i],[j]);
    Non mi sembra proprio corretta.
  • CarDeFusco ha scritto:


    Non so qual è il messaggio di warning che ti esce, dato che non l'hai scritto, ma a prima vista penso ci sia qualcosa da rivedere con questa funzione:
    int controllaMatrice(int x,int y){
    if( n>=10 || m>=10)
       return 0;
    else    
       return 1;
    }
    Al posto di n ed m penso tu volessi usare x ed y.
    .
    La funzione l'ho controllata gia e va bene.Si hai ragione,cioè ho sbagliato a ricopiare qui,ma nel programma originale
    ho utilizzato x e y
  • python34 ha scritto:


    CarDeFusco ha scritto:


    Non so qual è il messaggio di warning che ti esce, dato che non l'hai scritto, ma a prima vista penso ci sia qualcosa da rivedere con questa funzione:
    int controllaMatrice(int x,int y){
    if( n>=10 || m>=10)
       return 0;
    else    
       return 1;
    }
    Al posto di n ed m penso tu volessi usare x ed y.
    .
    La funzione l'ho controllata gia e va bene.Si hai ragione,cioè ho sbagliato a ricopiare qui,ma nel programma originale
    ho utilizzato x e y
    E per la scanf invece ?
  • Cosa c'è che non va per la scanf?
  • Utilizzo una macchina virtuale quindi ho dovuto ricopiare a mano il codice.Scusate per eventuali errori nella trascrizione.
    Ti suggerisco di salvare il lavoro su una chiavetta (la macchina virtuale dovrebbe essere in grado di "vederla") oppure di salvare da qualche parte su Internet (es. google drive) quanto meno per fare delle copie di sicurezza del lavoro che stai facendo
  • python34 ha scritto:


    Cosa c'è che non va per la scanf?
    Rileggi i post precedenti con attenzione
  • oregon ha scritto:


    python34 ha scritto:


    Cosa c'è che non va per la scanf?
    Rileggi i post precedenti con attenzione
    A quali post ti riferisci?
  • Riscontro errori almeno in queste due funzioni:
    inserisci(v[MAX][MAX],n,m);
    scanf("%d",&b[i],[j]);
  • python34 ha scritto:


    oregon ha scritto:


    python34 ha scritto:


    Cosa c'è che non va per la scanf?
    Rileggi i post precedenti con attenzione
    A quali post ti riferisci?
    A quelli in cui si parla di scanf ovviamente
  • vuott ha scritto:


    Riscontro errori almeno in queste due funzioni:
    inserisci(v[MAX][MAX],n,m);
    scanf("%d",&b[i],[j]);

    Ti riferisci alla virgola giusto?
  • python34 ha scritto:


    Ti riferisci alla virgola giusto?
    Sì , con riferimento ovviamente a quello che dovrebbe essere un unico secondo argomento della funzione scanf( ) .
Devi accedere o registrarti per scrivere nel forum
11 risposte