Ir ao conteúdo
  • Cadastre-se

Erro compilação


vmso

Posts recomendados

Seguinte moçada.. um programinha pra prencher uma matriz 3x4 e procurar um valor nela, fazendo uso de funções..

Peço para não ser corrigido caso eu tenha errado a lógica. Se estiver errado eu gostaria de me auto-corrigir.

No momento em que eu executo, tenho um erro de compilação:

invalid types `float[int]' for array subscript

qual é o porque deste erro? e como posso corigi-lo?

#include <iostream>
#include <stdlib.h>

float preenche(float mat[3][4]);
void pesquisa(int pesquisa, float mat[3][4]);
using namespace std;

int main (void)
{
float x[3][4], mat;
int pesq;

mat = preenche(x); //chama funcao para preencher a matriz

do{
cout << "Digite o numero do produtos a ser pesquisado: ";
cin >> pesq;
}while(pesq<3);

pesquisa(pesq, mat[3][4]); // ERRO AQUIIIIIII !
system("pause");
}

float preenche(float mat[3][4]) // funcao preenche matriz
{
int i, j;

for(i = 0; i < 4; i++){
system("cls");
cout << "Digite os produtos da loja: " << i + 1 << endl;
for(j = 0; j < 3; j++){
cout << "Loja[" << i + 1 << "] - " << "Produto[" << j + 1 << "]: ";
cin >> mat[j][i];
}
return(mat[3][4]);
}

void pesquisa(int pesquisa, float mat[3][4]) //funcao pesquisa
{
int i, j;
float preco;

preco = mat[1][1];
for(i = 0; i < 4; i++) //rotina pesquisa
for(j = pesquisa; j = pesquisa; j++)
if(mat[i][j] < preco)
aux = mat[i][j];

//mostra o menor preco e loja encontrados
cout << "Produto encontrado por R$" << aux << " na loja " << i;
}

Link para o comentário
Compartilhar em outros sites

1) Na função principal, você declarou 'mat' como sendo um float, e não uma matriz de float.

2) Na função 'preenche()', o valor retornado é o contido na posição 'mat[3][4]', e não a matriz inteira, portando, a variável 'mat' na rotina principal, receberá apenas o valor float da posição 'mat[3][4]', sendo que mais abaixo, na rotina principal, você está tentando passar ela como sendo uma matriz, coisa que ela não é.

A princípio, acho que é isso.

Estou sem compilador aqui pra testar, mas, se continuarem as dúvidas, é só postar.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!