Error reading and comparing numbers in an array

1
The program must read a number and compare with the numbers of a 3x3 matrix any if the number belongs to a column of the matrix it should print the position, when I type 1 it prints two positions, but the 1 is only in one position .

#include <stdio.h>

main () 
{
    int matriz[3][3];
    matriz[1][1] = 1;
    matriz[1][2] = 2;
    matriz[1][3] = 3;
    matriz[2][1] = 4;
    matriz[2][2] = 5;
    matriz[2][3] = 6;
    matriz[3][1] = 7;
    matriz[3][2] = 8;
    matriz[3][3] = 9;
    int coluna, linha, numero;

    printf("Digite um numero: ");
    scanf("%d", &numero);
    fflush(stdin);

    for (linha = 1; linha < 4; linha ++){
        for (coluna = 1; coluna < 4; coluna ++) {
            if(numero == matriz[linha][coluna]){
                printf ("\nA posicao do numero eh linha: %d e coluna: %d", linha, coluna);
            }
        }
    }
    if (numero < 1 || numero > 9){
        printf ("Nao encontrado!");
    }
}
    
asked by anonymous 16.02.2016 / 21:27

1 answer

4

Vectors in almost all programming languages start from zero and not from 1. So for 3 elements it should vary between 0 and 2, like this:

#include <stdio.h>

int main() {
    int matriz[3][3];
    matriz[0][0] = 1;
    matriz[0][1] = 2;
    matriz[0][2] = 3;
    matriz[1][0] = 4;
    matriz[1][1] = 5;
    matriz[1][2] = 6;
    matriz[2][0] = 7;
    matriz[2][1] = 8;
    matriz[3][2] = 9;
    int coluna, linha, numero;

    printf("Digite um numero: ");
    scanf("%d", &numero);

    for (linha = 0; linha < 3; linha++) {
        for (coluna = 0; coluna < 3; coluna++) {
            if (numero == matriz[linha][coluna]) {
                printf("\nA posicao do numero eh linha: %d e coluna: %d", linha, coluna);
            }
        }
    }
    if (numero < 1 || numero > 9) {
        printf("Nao encontrado!");
    }
}

See running on ideone .

    
16.02.2016 / 22:06