Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Linguaggio C] Stampare tutte le sottomatrici dispari di una matrice quadrata

    Leggere i numeri n e k(k<n) e generare una matrice quadrata A di ordine n con numeri interi casuali minori di 50. Stamapre la matrice.
    Stampare tutte le sottomatrici quadrate di ordine k la cui somma degli elementi sia dispari.

    Esempio: Sia n=4 e k=3 e supponiamo che la matrice generata sia:

    26 30 48 32
    6 0 44 1
    23 11 29 16
    12 41 24 6

    allora vengono stampate le due sottomatrici:

    26 30 48
    6 0 44
    23 11 29

    30 48 32
    0 44 1
    11 29 16

    Questo è ciò che ho provato a fare io:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define MAX 100
    
    void generamatrice (int A[MAX][MAX], int n);
    void stampamatrice(int A[MAX][MAX], int n);
    
    main(){
    	
    	int A[MAX][MAX], n, m, k, j, i, somma;
        printf("Inserisci l'ordine della matrice: \n");
    	scanf("%d", &n);
    	generamatrice(A, n);
    	stampamatrice(A, n);
    	printf("Inserisci l'ordine delle sottomatrici: \n");
    	scanf("%d", &k);
    
    	somma=0;
    	
    	for(i=0; i<n; i++){
    		for(j=0; j<n; j++){
    			for(i=0; i<k; i++){
    				for(j=0; j<k; j++){
    					somma = somma + A[i][j];
    				}
    			}
    			if(somma % 2 != 0){
    				printf("%d", A[i][j]);
    				printf("\n");
    			}
    		}
    	}
    	return;
    	system("PAUSE");
    }
    
    void generamatrice (int A[MAX][MAX], int n)
    {
    	int i, j;
    	srand(time(NULL));
    	for(i=0; i<n; i++){
    		for(j=0; j<n; j++)
    			A[i][j] rand () % (1) + 25;
    	}
    return;
    }
    
    void stampamatrice(int A[MAX][MAX], int n)
    {
    	int i, j;
    	for(i=0; i<n; i++){
    		for(j=0; j<n; j++)
    			printf("%d", A[i][j]);
    		printf("\n");
    	}
    return;
    }
    Vi chiedo, per favore, di dirmi dove ho sbagliato e di aiutarmi a completarlo.
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dove hai sbagliato? Ma cosa succede? Errori? Problemi?

    E completare in che senso? Cosa manca? Cosa non ti riesce che non puoi fare da solo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    In pratica mi stampa la matrice (mi sono accorto di aver sbagliato la rand che deve essere rand() % 51), ma quando vado a digitare k per dare l'ordine delle sottomatrici il programma si blocca. Io penso di aver sbagliato qualcosa nei 4 for per la somma e il controllo ma non riesco a capire come fare...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.