Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    calcolare l' elemento piu frequente di una matrice

    in linguaggio c


    /*come si fa a calcolare l' elemento piu frequente di una matrice generica
    m x n di nome mat ?*/


    // ho provato cosi:
    for(i=0; i<m; i++)
    for(j=0;j<=n;j++){
    for (k=0;k<=m;k++)
    for(t=0;t<=n;t++)
    if (mat[i][j]==mat[k][t])
    g++;
    if(g>max){
    max=g;
    x=mat[i][j];
    }
    g=0;
    }

    dove sbaglio?

  2. #2
    il prog è in linguaggio c. Nessuno capisce cosa ho sbagliato?

  3. #3
    Prova questa(magari funziona):

    max=0;
    for(i=0; i<m; i++)
    for(j=0;j<n;j++){
    if(m[i][j]>max)max=m[i][j];
    }/*for i*/
    } /*for j*/
    max ha adesso valore=massimo tra tutti gli elementi della matrice.

  4. #4
    niente da fare il blooshed dev mi da questo errore
    invalid types `int[int]' for array subscript

  5. #5
    Allora bisognerebbe vedere come è fatto il codice.

  6. #6
    forse ho sbagliato a scrivere la printf :

    printf("\n\n l'elemento piu frequente e': \n");
    printf("%4d ", x);

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Scusa dolores, ma stai facendo un sacco di confusione ... perche' non posti *tutto* il codice, compresi gli include, la dichiarazione del main, la dichiarazione di tutte le variabili e dell'array ...?

    @BLACKGORDON
    L'elemento piu' frequente di una matrice non e' il suo massimo ...

  8. #8
    Vero!Scusatemi misto confondendo anch'io...

  9. #9
    questo è il codice:


    include<stdio.h>
    #include<stdlib.h>

    #define MAXRIGHE 100
    #define MAXCOLONNE 100


    int mat[MAXRIGHE] [MAXCOLONNE];

    main()
    {
    int n, m, i, j;
    int k, t;
    int g=0, max=0, x=0;

    //richiesta delle dimensioni
    do {
    printf("\nNumero di righe: ");
    scanf("%d", &n);
    }
    while((n>=MAXRIGHE) || (n<1));

    do {
    printf("\nNumero di colonne: ");
    scanf("%d", &m);
    }
    while((m>=MAXCOLONNE) || (m<1));

    //caricamento matrici
    printf("\n\n Caricamento della prima matrice \n\n");
    for(i=0; i<m; i++)
    for(j=0; j<n; j++) {
    printf("inserisci riga %d colonna %d val:", i, j);
    scanf("%d", &mat[i][j]);
    };

    // visualizzazione matrice
    printf("\n\n La matrice e': \n");
    for(i=0; i<m; i++) {
    for(j=0; j<n; j++)
    printf("%5d ", mat[i][j]);
    printf("\n");
    }

    //calcolo elemento piu frequente
    for(i=0; i<m; i++)
    for(j=0;j<=n;j++){
    for (k=0;k<=m;k++)
    for(t=0;t<=n;t++)
    if (mat[i][j]==mat[k][t])
    g++;
    if(g>max){
    max=g;
    x=mat[i][j];
    }
    g=0;
    }

    //visualizzazione elemento piu frequente
    printf("\n\n l'elemento piu frequente e': \n");
    printf("%4d ", x);


    system("PAUSE");


    }

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Intanto devi togliere tutti i segni = dal controllo dei cicli, altrimenti eccedi nell'indice della matrice ... Deve essere

    for(i=0; i<m; i++)

    for(j=0; j<n; j++)

    for(k=0; k<m; k++)

    for(t=0; t<n; t++)

    Per il resto, non ho fatto altre prove ...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.