Jump to content
Gustavo de Souza Cruz

expected ';', ',' or ')' before '=' token

Recommended Posts

Gustavo de Souza Cruz

Pessoal, boa tarde . Sou iniciante em linguagem C, e por isso estou com dificuldades pra conseguir identificar o erro. Me digam por favor o que está errado nesse código, e me digam como resolver!!

CÓDIGO:

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

int i;
int vetor1 [5];
int vetor2 [5];
int vetor3 [5];
float total = 0;

void mediaVetores (int *vetor3, int tamanho, float total = 0){
  for (int i = 0; i < tamanho; i++){
    vetor3 = (vetor1 + vetor2);
    total = total + vetor3;
  }

  total = total/tamanho;
  
  printf ("\nA média dos dois vetores é: \n\n%.2f\n", total);
}

int main() {
  printf ("\n Digite os valores do primeiro vetor: \n\n");
  for (int i = 0; i < 5; i++){
    scanf ("%d", &vetor1);
  }

  printf ("\n Digite os valores do segundo vetor: \n\n");
  for (int i = 0; i < 5; i++){
    scanf ("%d", &vetor2);
  }
  mediaVetores (total);
}

ERROS QUE O REPL.IT INFORMA:

exit status 1 main.c:11:58: error: expected ';', ',' or ')' before '=' token void mediaVetores (int *vetor3, int tamanho, float total = 0){ ^ main.c: In function 'main': main.c:43:5: warning: implicit declaration of function 'mediaVetores' [-Wimplicit-function-declaration] mediaVetores (total); ^~~~~~~~~~~~

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Vê como tens definida a função:

void mediaVetores (int *vetor3, int tamanho, float total = 0)

Vê bem como tens os parâmetros.

E depois vê como a chamas na função main().

Só mais uma nota:

Tens que rever como se preenchem vectores e como se acede aos valores neles contidos.

Deves também rever o que é o scope das variáveis e saber depois declarar as variáveis nos sítios certos de acordo com a finalidade dela. Vejo que declaraste variáveis globais mas isso é má prática.

Se eu percebi o código, é suposto pedir valores ao user e preencher dois vectores e depois somar os valores de cada vector e apresentar a média dessa soma, certo?

Pelas razões que apresentei anteriormente, o teu programa vai dar erros sem fim. Assim que corrigires um, aparecem mais 10.

Edited by PsySc0rpi0n
  • Vote 2

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
Gustavo de Souza Cruz
4 minutos atrás, PsySc0rpi0n disse:

Vê como tens definida a função:


void mediaVetores (int *vetor3, int tamanho, float total = 0)

Vê bem como tens os parâmetros.

E depois vê como a chamas na função main().

Não entendi, mano... Teria como você fazer e me mandar?!

Share this post


Link to post
Share on other sites
PsySc0rpi0n
5 minutes ago, Gustavo de Souza Cruz said:

Não entendi, mano... Teria como você fazer e me mandar?!

 

Não, não posso fazer isso. Primeiro é contra as regras do forum, colocar aqui, assim sem mais nada, a solução para um problema. e segundo, também é contra os meus princípios simplesmente dizer como se faz sem pelo menos incentivar-te a pesquisar como se faz!

 

Sugestões:

Pesquisar "como se definem funções em C"

Pesquisar "como declarar vectores e aceder ao seu conteúdo"

Isto só para começar!


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
Rui Carlos

float total = 0 na declaração da função é válido em C++, mas não em C (e depois tens o mismatch entre a declaração e uso da função, como já referido).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.