Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
#include <stdio.h>
void multiplica(int, int *);
int main ()
{
int m[3][3], y, l, c;
puts("Digite um numero");
scanf("%d", &y);
for(l=0; l<3; l++)
{
for(c=0; c<3; c++)
{
scanf("%d", &m[l][c]);
}
}
multiplica(y, m);
}
void multiplica(int y, int *m1)
{
int l, c;
for(l=0; l<3; l++)
{
for(c=0; c<3; c++)
{
m1[l][c] *= y;
}
}
for(l=0; l<3; l++)
{
for(c=0; c<3; c++)
{
printf("%d ", m1[l][c]);
}
printf("\n");
}
}
Preciso passar um valor e uma matriz como parâmetro para uma função e depois multiplicar todos os termos da matriz pelo valor. O que tem de errado no código? Ele funciona quando uso um vetor.
>
multiplica.c: In function ‘main’:
multiplica.c:20:5: warning: passing argument 2 of ‘multiplica’ from incompatible pointer type [enabled by default]
multiplica.c:3:6: note: expected ‘int ’ but argument is of type ‘int ()[3]’
multiplica.c: In function ‘multiplica’:
multiplica.c:31:18: error: subscripted value is neither array nor pointer nor vector
multiplica.c:39:32: error: subscripted value is neither array nor pointer nor vector
printf("%d ", m1[l][c]);
Use nomes que signifiquem alguma coisa.
#include <stdio.h>
#define MAX 3
int main (void) {
void multiplica(int n, int matriz[][MAX]) {
void imprime(int matriz[][MAX]) {