Ir para conteúdo

Arquivado

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

JhOnE RoSsInI

calcular média

Recommended Posts

Olá pessoal sou iniciante em DEV-C++ por isso estou com uma duvida simples

gostaria que alguem me dissese porque esta dando erro já estou com :angry: desse erro

agradeço desde já

#include <stdio.h>
#include <conio.h>

float processa(float media);
int num1, num2, media;
void main(void) 
{ [b]<- o erro da aqui, porque?[/b]
     printf("Informe o numero: "); scanf("%f", &num1);
     num1 = processa(media);
     printf("Informe o segundo numero"); scanf("%", &num2);
     num2 = processa(media);
     
     
     float processa(float media);
     {
           float media;
           media=(num1 + num2) / 2;
           }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o baguio decente mano kk:

#include <stdio.h>

float processa(float n1, float n2);

int main(void){
    int num1, num2, media;
    printf("Informe o numero: "); 
    scanf("%f", &num1);
    printf("Informe o segundo numero"); 
    scanf("%f", &num2);
    printf("%.2f", processa(num1, num2));
    scanf("%*c");
}

float processa(float n1, float n2){
    return (((num1 + num2) / 2));
} 

n rodei, + se tiver erro tenta interpretar primeiro antes de vir colocar aki algo facil!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites
Você não deve colocar "void" dentro do Main()

 

Ele pode, sim, colocar 'void' no lugar de int argc, char *argv[], char *envp[]. Na seção sobre tipos da linguagem está escrito o seguinte:

 

void is used primarily as the typemark for a function that returns no result. It may also be used as the cast (void) to indicate explicitly that the value of an expression is to be discarded while retaining the expression’s side effects. Finally, a function prototype list that has no arguments is written as f(void), because f() retains its old meaning that nothing is said about the arguments. Note that there is no such thing as a "void object."

 

http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?id=1043284376&answer=1044841143

 

O que não pode ser feito é declarar o tipo de retorno do main como void. Existe um post sobre isso no tópico do fflush(stdin)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ebtão foi nesse ponto que eu me confundi, eu programei com C++ há um bom tempo, peço desculpas.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

return (((num1 + num2) / 2));

 

ta com erro ai agora e media não é real?

 

assim não da erro mas tambem não aparece nada

#include <stdio.h>

    void processa();

int main (void){
    int num1, num2; 
    float media;
    
    printf("Informe o numero:"); 
    scanf("%f", &num1);
    printf("Informe o segundo numero"); 
    scanf("%f", &num2);
    processa();
    printf("media:%f\n",media);
    
    return 0;
    }

float processa(int num1, int num2)

{
    return (float) (num1 + num2) / 2;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Processa retorna void ou float? Decida-se

2- Como você espera que a variável media tenha o valor certo se nem atribuição tem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

#include <stdio.h>

void processa();

int main (void){
int num1, num2;
float media;
media = 0;

printf("Informe o numero:");
scanf("%f", &num1);
printf("Informe o segundo numero");
scanf("%f", &num2);
media = processa();
printf("media:%f\n",media);

return 0;
}

float processa(int num1, int num2)

{
   return (float)(num1 + num2) / 2;
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse código nem compila. Eu repito o que eu já postei. É só ler atentamente p/ perceber os dois detalhes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, eu como disse não compilei + se tiver algum erro é coisa besta.

você chego a interpretar o erro do compilador "ao menos" ???

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu ja disse sou iniciante não sei c++ estou aprendendo

eo erro ta no return aqui "return (((num1 + num2) / 2));"

tentei corrigir mas não conssegui queria saber porque?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preste atenção no que você escreve.

 

1- Você quer ler um float ou um inteiro?

2- A função tem ou não tem argumentos?

3- Ela retorna void ou float?

4- Como você espera que media tenha algum valor se nem atribuição existe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta ai mas não exebe o resultado porque?

 

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

float processa(int num1, int num2);

int main(void)
{

	int num1, num2;
	float media;

	printf("Informe o numero: ");
	scanf("%d", &num1);
	printf("Informe o segundo numero");
	scanf("%d", &num2);
	media = processa(num1, num2);
	printf("Media: %f\n", media);

	return 0;

}

float processa(int num1, int num2)
{

	return (float) (num1 + num2) / 2;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você mesmo respondeu a pergunta: você está usando Dev C/C++. Essa coisa fecha o terminal da aplicação na tua cara, como se você não quisesse saber o que está acontecendo.

Por isso que eu recomendo trocar o IDE p/ eclipse ou netbeans

 

telaimasters.th.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou trocar entao obrigado

olha tenho outra duvida nesse exercicio ai

ele nao aparece nada porque?

 

#include <cstdlib>
#include <iostream>

main
int num,cont,par;
{
 for(cont=1; cont<=10; cont++);
 printf("Informe um numero %f");
 printf("A quantidade de numeros pares é :%d/n",par);
 if(num % 2=0);
 {
 par=par + 1;
 }
 system("Pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se liga: p/ escrever códigos aqui se usa a tag CODE (observe que tirando o primeiro post, todos foram editados porque você não usou).

Esse último programa nem vai compilar. E é extremamente fácil de saber o motivo, é só ler com atenção o que foi escrito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta ai valew por me chamar a atenção

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

int main(int argc, char *argv[])
{
int num = 0;
int cont = 0;
int par = 0;

for(cont=1; cont<=10; cont++)
{
printf("Informe um numero %d: ", cont);
scanf("%d", &num);
if((num%2)==0)
{
par=par + 1;
}
}
printf("A quantidade de números pares é: %d ", par);

system("PAUSE");
return 0;
}

Tenho outro exercicio aqui tambem que não ta dando certo olha

#include <cstdlib>
#include <iostream>

main()
{
   int par=0,cont=1;
   for(cont=1;cont==10;cont++)
       if((num%2)==0);
          par=par+1;
{
printf("A quantidade de numeros pares são: ",par);
system("Pause >null");
}  
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que você não entendeu o funcionamento de for loops. O teste condicional do seu for falha na primeira vez. Além disso, por que você colocou o printf() e o pause() dentro de um bloco? O que você quer dizer com a linha a seguir?

 

if((num%2)==0);

De onde vem num?

 

Eu realmente recomendo que você pegue um livro e siga-o na ordem certa. Parece que você está tentando modificar programas já feitos sem ter a mínima ideia de coisas básicas como controle de fluxo... aliás, sem ter a mínima ideia de como as informações são armazenadas e manipuladas em C.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valew cara eu corrigi e ficou assim

#include <cstdlib>
#include <iostream>

main()
{
   int par=0,cont=1,num;
   
   for(cont=1;cont==10;cont++)
       if((num%2)==0);
          par=par+1;
printf("A quantidade de numeros pares são: ",par);
system("Pause >null");
}  

tenho outra duvida eu nao conssigo fazer essa tabuada alguem me ajuda

 

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

main(){
int tab;
int cont=1;
int num;

      printf("Informe um numero inteiro: ");
      scanf("%d",&num);
      while(cont>0 && cont<=10)
      {
      tab=(num * cont);
      printf("\n", num, "\n x", cont, "\n =",tab);
      cont=cont+1;
      }
      system("Pause >null");
}
      

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não faço a menor ideia do que você está tentando fazer, mas se está tentando aprender a programar pegando código pronto, esqueça.

Largue tudo, pegue um livro de lógica e decida-se entre C ou C++ p/ poder pegar um livro específico p/ uma linguagem e siga a ordem dos capítulos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.