Problema matrice in c

di il
5 risposte

Problema matrice in c

Ciao a tuttti ragazzi! mi rivolgo a voi perchè non ho più idea di come fare il seguente programma e mi sa che voi siete la mia ultima speranza. Devo riuscire a fare un programma in c (NON c++!) in cui devo scrivere una funzione con un parametro formale di nome M di tipo matrice 20x20 di interi ed un parametro formale di nome X di tipo matrice 10x10 di tipo int. La funzione deve copiare i dati di X in M, in modo che ogni dato di X compaia in M 4 volte.
Esempio: se M avesse dimensione 4x4 e X dimensione 2x2, allora dato X come
10 20
30 40
allora M diverrebbe:
10 20 10 20
30 40 30 40
10 20 10 20
30 40 30 40


I comandi da usare sono quelli base, quindi parlo di for, while, if,if-else, do-while... no puntatori o funzioni. Spero di essere stato chiaro e di ricevere una man... grazie a tutti!

5 Risposte

  • Re: Problema matrice in c

    Ci serve il tuo input per andare avanti, cioè ci devi far vedere la tua versione.
  • Re: Problema matrice in c

    #include<stdio.h>
    #include<stdlib.h>
    int main(void){
    int M[20][20], i, j, X[10][10], z, w;
    for(z=0; z<10; z++){
    for(w=0; w<10; w++){
    scanf("%d", M[z][w]);
    }}
    for(i=0; i<10; i++){
    for(j=0; j<10; j++){
    M[j]=X[z][w];
    i=z;
    j=w;}}
    printf("%d", M[j]);
    for(i=11; i<20; i++){
    for(j=11; j<20; j++){
    M[j]=X[z][w];
    i=z;
    j=w;}}
    printf("%d", M[j]);
    system("pause");
    return 0;
    }
  • Re: Problema matrice in c

    La mia versione è chiaramente sbagliata, ma non riesco a capire come fare... ho provato anche a inserire un vettore k che prendesse i valori delle matrice e che poi venisse girato in un altra matrice M[10][10] così da stampare la matrice di input(X[10][10]) e quella M[10][10] che avesse i valori k pari proprio a quella di input, ma credo di sbagliarne la sintassi.... insomma, sto esaurendo
  • Re: Problema matrice in c

    Io farei così
    for(i=0;i<=9;i++)
              for(j=0;j<=9;j++){M[i][j]=M[i][j+10]=X[i][j];
                                        M[i+10][j]=M[i+10][j+10]=X[i][j];}

    ma controlla se va bene perché l'ho fatto qui per qui
  • Re: Problema matrice in c

    Trovata la soluzione, grazie comunque! era parecchio simile a quella proposta da te, cambiava forse nel fatto che usava più ccli fr... te la posto qui

    void quadruplica(int M[20][20], int X[10][10])
    {
    int i,j;
    for(i=0;i<10;i++)
    for(j=0;j<10;j++)
    M[j] = X[j];
    for(i=0;i<10;i++)
    for(j=0;j<10;j++)
    M[j+2] = X[j];
    for(i=0;i<10;i++)
    for(j=0;j<10;j++)
    M[i+2][j] = X[j];
    for(i=0;i<10;i++)
    for(j=0;j<10;j++)
    M[i+2][j+2] = X[j];
    }
Devi accedere o registrarti per scrivere nel forum
5 risposte