[C] Controllo righe/colonne matrice

di il
3 risposte

[C] Controllo righe/colonne matrice

Salve a tutti, sono nuovo del forum, e sto cercando di sviluppare un programma che verifichi se tutti gli elementi di una riga o di una colonna di una matrice, sono negativi. Sono piuttosto impantanato nella struttura dell if ... qualcuno può darmi un input ?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define m 3
#define n 3
#define vero 1
#define falso 0
int main() {
    srand(time(NULL));
    int mat[m][n];
    int i,j;;
    int trov=falso;
        //riempio matrice
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            mat[i][j]=rand()%10+1;
            mat[i][j]=mat[i][j]-5;
        }
    }
  
        //stampo
    
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            printf("%d ",mat[i][j]);
        }
        printf("\n");
    }
                //controllo
          //controllo
        for (i=0;i<m;i++)
                {
                for(j=0;j<n;j++)
                    {
                    if (mat[0][j]<0 || mat[i][0]<0)
                    {
                    trov=vero;
                    }
                    while (trov==vero)
                        {
                            if(mat[i][j]<0)
                                    {
                                    printf("\nelementi negativi\n");
                                    }
             
                                }
                            }
                        }
    
                return 0;



3 Risposte

  • Re: [C] Controllo righe/colonne matrice

    Pochissimo tempo fa è stato aperto un argomento identico...
  • Re: [C] Controllo righe/colonne matrice

    C'è un pò di confusione all'interno dei due for nidificati quando vai a controllare se un determinato elemento è negativo.
    
    ...
    //che elementi vengono controllati?
    if (mat[0][j]<0 || mat[i][0]<0)
    {
        trov=vero;
    }
    
    //quando termina questo ciclo? è necessario?
    while (trov==vero)
    {
        if(mat[i][j]<0)
        {
            printf("\nelementi negativi\n");
        }
    }
    ...
    
  • Re: [C] Controllo righe/colonne matrice

    Alla fine ho risolto cosi :
     for (i=0;i<m;i++)
        {
            for (j=0;j<n;j++)
            {
                if (a[i][j]>=0)
                {
                    flag=0;
                }
            }
            if (flag == 1)
            {
                printf("\nTutti gli elementi sono negativi nella riga %d ",i+1);
            } else
            {
                flag=1;
            }
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<m;j++)
            {
                if (a[j][i]>=0)
                {
                    flag=0;
                }
            }
            if (flag == vero)
            {
                printf("\nTutti gli elementi sono negativi nella colonna %d ",i+1);
            } else
            {
                flag=1;
            }
            
Devi accedere o registrarti per scrivere nel forum
3 risposte