Ir ao conteúdo
  • Cadastre-se

C alguém sabe porque não esta rodando


alan.modesto

Posts recomendados

int consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt) {

printf("sua matricula é :",vMatr[2]);

printf("sua faltas sao :",vFaltas[2]);

printf("sua media é :",vMedias[2]);

return consultaAlunos;
}

float main(void)
{
    int vMatr[5] = {1,2,3,4,5};
    int vFaltas[5] = {10,4,3,2,7};
    float vMedias [5] = {10,8,3,2,7};
    printf("", consultaAlunos);
            }

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

int consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt)
{
  printf("sua matricula é :",vMatr[2]);
  printf("sua faltas sao :",vFaltas[2]);
  printf("sua media é :",vMedias[2]);
  return consultaAlunos;
}

 

consultaAlunos retorna um int, mas você está retornando a própria função, mas sem os argumentos. E se desse certo ia chamar a função, que ia chamar a função,  que ia chamar a função,  que ia chamar a função,  que ia chamar a função ...

 

Acho que entendeu... 

 

Retorne um int. Ou --- se a função era de fato para ser recursiva --- ajuste uma condição de parada....

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@arfneto

#include<stdio.h>
#include<locale.h>
  
  //CLOQUEI UM RETURN 0;, MAS porque OS PRINTFS não SAO EXECUTADOS?


int consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt) {

printf("sua matricula é %d:",vMatr[2]);

printf("sua faltas sao %d:",vFaltas[2]);

printf("sua media é %f:",vMedias[2]);

return 0;
}

float main(void)
{
    int vMatr[5] = {1,2,3,4,5};
    int vFaltas[5] = {10,4,3,2,7};
    float vMedias [5] = {10,8,3,2,7};
    consultaAlunos
            }

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

agora, alan.modesto disse:
float main(void)
{
    int vMatr[5] = {1,2,3,4,5};
    int vFaltas[5] = {10,4,3,2,7};
    float vMedias [5] = {10,8,3,2,7};
    consultaAlunos
            }

 

????? Agora está errado do outro lado.

 

Já pensou no caso da função? Não declarou como

 

1 minuto atrás, alan.modesto disse:
int consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt)

 

?

 

Então não seria justo passar 4 parâmetros a cada vez que fosse chamar?

 

    int vMatr[5] = {1,2,3,4,5};
    int vFaltas[5] = {10,4,3,2,7};
    float vMedias [5] = {10,8,3,2,7};

 

Não precisa e geralmente não deve declarar os tamanhos. O compilador sabe contar o tamanho do  vetor se está inicializando o vetor todo....

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@arfneto

#include<stdio.h>
#include<locale.h>


void consultaAlunos( int vMatr[], int vFaltas[], float vMedias[], int qt) {
int i;
for (i = 0; i < vMatr[i]; i++){
printf("sua matricula é %d:",vMatr[i]);
}
for (i = 0; i < vFaltas[i]; i++){
printf("sua faltas sao %d:",vFaltas[i]);
}
for (i = 0; i < vMedias[i]; i++){
printf("sua media é %f:",vMedias[i]);
}
return 0;
}

void main()
{
    int vMatr[] = {1,2,3,4,5};
    int vFaltas[] = {10,4,3,2,7};
    float vMedias [] = {10,8,3,2,7};
    consultaAlunos;
            }
                           
                           // mexi dentro da funçao agora, a parte do declarar, não entendi o que voce falou.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

3 minutos atrás, alan.modesto disse:
 mexi dentro da funçao agora, a parte do declarar, não entendi o que voce falou.

 

Eu não entendo o que está tentando fazer. Está experimentando sem critério? Não faça isso. Vai perder muito tempo.

 

Você tem um livro? Uma apostila que descreva o que é um função e o que são argumentos ao menos?

 

o que é consultaAlunos()? Porque agora é void?

 

E porque continua chamando sem argumentos se declarou como recebendo nada menos que 4?

 

A razão disso existir é que você pode ter muitos vetores de alunos e passando o nominho deles como argumento pode usar a mesma função para tratar todos. 

 

So que você simplesmente escreveu em main() :

 

consultaAlunos;

 

Então porque não copiou os loops ali mesmo simplesmente?

 

int i;
for (i = 0; i < vMatr[i]; i++){
printf("sua matricula é %d:",vMatr[i]);
}
for (i = 0; i < vFaltas[i]; i++){
printf("sua faltas sao %d:",vFaltas[i]);
}

 

Não escreva assim nunca. Só vai ter problemas.

 

Use

 


for (int i = 0; i < vMatr[i]; i++) printf("sua matricula é %d:",vMatr[i]);
for (int i = 0; i < vFaltas[i]; i++) printf("sua faltas sao %d:",vFaltas[i]);

 

  • DECLARE a variável de controle dentro do loop
  • não use chaves se o comando do loop só tem uma linha
  • está certo de que era isso que queria escrever? Qual o sentido dessa condição i< x[i]? Provavelmente queria escrever i < qt para mostrar o conteúdo do vetor todo....

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@arfneto po eu fui pesquisando no tempo que voce estava respondendo e consegui algo aqui, mas muito obrigado por me alertar, com a sua dica fui pesquisar e pasme eu não sabia declarar a funçao KKKK

void consultaAlunos( int vMatr[], int vFaltas[], float vMedias[]) {
int i;
for (i = 0; i < vMatr[i]; i++){
printf("\n sua matricula é %d:",vMatr[i]);
}
for (i = 0; i < vFaltas[i]; i++){
printf("\nsua faltas sao %d:",vFaltas[i]);
}
for (i = 0; i < vMedias[i]; i++){
printf("\n sua media é %f:",vMedias[i]);
}
}

void main()
{
    int vMatr[] = {1,2,3,4,5};
    int vFaltas[] = {10,4,3,2,7};
    float vMedias [] = {10,8,3,2,7};
    consultaAlunos (vMatr, vFaltas, vMedias);
            }

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@alan.modesto não mude as coisas a olho.

  • Porque tirou um parâmetro???
  • porque insiste com as chaves?
  • porque não colocou a declaração como te expliquei?
  • porque declara main(0 como void() se retorna int?
  • 59 minutos atrás, alan.modesto disse:
    float main(void)

     

  • porque retornava float no programa original???
  • como acha que seu loop vai terminar? Se antes não tinha usado o argumento certo agora nem tem porque você tirou
  • 4 minutos atrás, alan.modesto disse:
    i < vFaltas[i]

     

Porque essa condição iria terminar o loop corretamente?

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@alan.modesto   esse primeiro código  não está compilando por Que você não colocou o ponto_e_vírgula ,  comum em Quase todos os finais de linha na linguagem c / c++ / c#  / java etc . . .  ,  e assim ele compila , mas não faz nada , por que não foi enviado nenhum  valor para a função ,  que apesar de fazer parte desse código  se encontra fora da função main e assim de dentro de uma função não se tem conhecimento de nada que esteja em outra função , e o que se faz dentro dessa função é apenas ali mesmo ,  então por isso os dados precisam ser enviados para ele , para que se possa manipular esses dados ,  e de novo se quer que outra função use esses dados que estão dentro dessa função ,  precisa enviar para ela , e então esse código modificado poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<locale.h>

//CLOQUEI UM RETURN 0;, MAS porque OS PRINTFS não SAO EXECUTADOS?

int consultaAlunos(int vMatr[], int vFaltas[], float vMedias[], int qt) 
{
    printf("sua matricula eh --: %5d    \n\
          \rsua faltas sao ----: %5d    \n\
          \rsua media eh ------: %5.2f\n\n", 
          vMatr[2], vFaltas[2], 
          vMedias[2] );
    return 0;
}
float main(void)
{
    int   vMatr  [5] = {  1,2,3,4,5 };
    int   vFaltas[5] = { 10,4,3,2,7 };
    float vMedias[5] = { 10,8,3,2,7 };
    consultaAlunos;  // aqui faltou um ponto e virgula e os parenteses com os dados dentro
    consultaAlunos( vMatr, vFaltas, vMedias, sizeof(vMatr)/* ou o numero 5 */ );
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...