Ir para conteúdo

POWERED BY:

Arquivado

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

VegasColt

Passagem de Parametros

Recommended Posts

boa tarde pessoal...

 

desculpe o incomodo,eu to um problema aqui q nao estou conseguindo entender....

 

eu tenho q construir um programa q leia uma sequencia (sem quantidade estipulada) de numeros nao positivo e exiba a soma dos numeros invalidos

 

int verific(int a)
{
  int retorno;
  
  if (a<0)
      retorno =0;
      
      else
      
      retorno =1;

  return(retorno);

}

int somatotal(int B)
{
   int soma;
   soma=0; 
    
    soma=soma+b;

    return(soma);
}

int main()
{
    printf("\n _________________________________\n ");
    printf("\n|       Verificacao de Numeros    |\n");
    printf("\n|                                 |\n"); 
    printf("\n| Desenvolvido por  VegasColt     |\n");
    printf("\n|_________________________________| \n "); 
    
     printf("\n");
    int i,v,x,npos[10],total;
    
    total=0;
    
    printf("Por Favor Digite a Quantidade de Numeros e ser Verificado \t");
    scanf("%d",&v);
    
    while(v<=0||v>10)
    {
                    printf("Por Favor Digite um Numero entre 1 ou 10 \t");
                    scanf("%d",&v);
    }
    
    
    for (i=0;i<v;i++)
    {
        printf("Por Favor Digite o Numero a Ser Comparado \t");
        scanf("%d",&x);
        
        printf("\n");
            
            if(verific(x)==0)
            {
            printf("O numero Digitado e Negativo \n\n");
            }
            
            if (verific(x)==1)
            {
            printf("O numero Digitado e Positivo \n\n");
            
            npos[i] = x ;
            
            }
    
    }
    for (i=0;i<v;i++)
    {
        total=somatotal(npos[i]);
        
    }
    
    printf("O Total da Soma dos Numeros Invalidos  %d \n",total);
    
    system("pause");
    return(0);
}

ta tudo funcionando direito so nao to conseguindo imprimir a soma dos numeros invalidos,alguem pode me dar uma ideia daonde eu to errando???

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu concertei isso,foi mal,mas mesmo assim da erro....

 

olha so o erro isso quando digito numeros negativos

 

Imagem Postada

 

e esse e quando eu digito numeros positivos

 

Imagem Postada

 

tipo eu percebi que ele imprime o ultimo numero digitado como o numero da soma

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, sua função "somatotal" esta errada.

Você não esta armazenando a soma anterior:

int somatotal(int B)

{
   int soma;
   soma=0; 
   soma=soma+b;
   return(soma);
}
----------------
for (i=0;i<v;i++)
    {
        total=somatotal(npos[i]); // Voce nao utiliza  valor retornado pela funcao, voce esta perdendo a soma anterior.       
    }

Eu recomendo que você utilize o método de programção KISS, e ao invéz de fazer uma função para calcular o total faça tudo no for mesmo:

 

for (i=0;i<v;i++)
    {
        total+=npos[i];
        
    }

Boa sorte. o/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, sua função "somatotal" esta errada.

Você não esta armazenando a soma anterior:

int somatotal(int B)

{
   int soma;
   soma=0; 
   soma=soma+b;
   return(soma);
}
----------------
for (i=0;i<v;i++)
    {
        total=somatotal(npos[i]); // Voce nao utiliza  valor retornado pela funcao, voce esta perdendo a soma anterior.       
    }

Eu recomendo que você utilize o método de programção KISS, e ao invéz de fazer uma função para calcular o total faça tudo no for mesmo:

 

for (i=0;i<v;i++)
    {
        total+=npos[i];
        
    }

Boa sorte. o/

 

esse for q você fala e o for do intmain()?

 

e o q seria metodo KISS?

 

tipo brother eu to com um problema se eu digitar numeros positivos e numeros negativo ele imprime um valor absurdo....

 

tipo se liga na minha ideia,ele ia ler,os numeros e so armazenaria no vetor os numeros positivos,e depois usaria esse vetor pra calcular,so q nao sei o q fazer pq se eu digita tudo numero negativo ele faz a soma mesmo assim,o q você me indicaria fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

static... declare a variável da função "somatotal" como static.

Compartilhar este post


Link para o post
Compartilhar em outros sites
e o q seria metodo KISS?

 

Keep it simple,stupid.

 

 

 

 

eu tenho q construir um programa q leia uma sequencia (sem quantidade estipulada) de numeros nao positivo e exiba a soma dos numeros invalidos

 

Sem quantidade estipulada,mas você define um total de números a serem verificados...

 

 

 

 

O resultado da soma dos números negativos não é erro...É você mesmo quem não coloca eles no array.Supondo que eles são válidos, então existe um erro de lógica:

 

 

 

 

if(verific(x)==0)
           {
           printf("O numero Digitado e Negativo \n\n");
            }

 

 

 

 

 

#include <stdio.h>

int main(){

    int numero_digitado;
    int soma = 0 ;


      while (1) {
             printf("Por Favor Digite o Numero a Ser Comparado \t");
             scanf("%d",&numero_digitado);

 	     if (numero_digitado == 0)
 		         break;

 	     if (numero_digitado < 0)
                     printf("O numero Digitado e Negativo \n\n");
             else {
        	         printf("O numero Digitado e Positivo \n\n");
        	         soma += numero_digitado;
             }

     }


      printf("O Total da Soma dos Numeros Invalidos  %d \n",soma);

      return(0);
}

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

static... declare a variável da função "somatotal" como static.

 

e vitor valeu pela ideia do static,isso me ajudou em outra situação

 

tipo eu so dei bobera pq eu tava iniciando com 0...ae continuou o erro, ae tirei a linha e funcionou perfeito.....

 

e o q seria metodo KISS?

Keep it simple,stupid.

 

 

 

 

eu tenho q construir um programa q leia uma sequencia (sem quantidade estipulada) de numeros nao positivo e exiba a soma dos numeros invalidos

Sem quantidade estipulada,mas você define um total de números a serem verificados...

 

 

 

 

O resultado da soma dos números negativos não é erro...É você mesmo quem não coloca eles no array.Supondo que eles são válidos, então existe um erro de lógica:

 

 

 

 

if(verific(x)==0)
            {
            printf("O numero Digitado e Negativo \n\n");
            }

 

 

 

 

#include <stdio.h>

int main(){

    int numero_digitado;
    int soma = 0 ;
	
	
      while (1) {
             printf("Por Favor Digite o Numero a Ser Comparado \t");
             scanf("%d",&numero_digitado);

 	     if (numero_digitado == 0)
 		         break;
		
 	     if (numero_digitado < 0)
                     printf("O numero Digitado e Negativo \n\n");
             else {
        	         printf("O numero Digitado e Positivo \n\n");
        	         soma += numero_digitado;
             }
        	
     }
    
       
      printf("O Total da Soma dos Numeros Invalidos  %d \n",soma);

      return(0);
}

entendi isis....valeu pela a explicação do Kiss

 

eu realmente refiz o programa do zero e percebi q o mais logico era fazer isso

 

  
            if(verific(x)==0)
            {
            printf("O numero Digitado e Negativo \n\n");
            }
            
            if (verific(x)==1)
            {
            printf("O numero Digitado e Positivo \n\n");
            
            npos[i] = x ;
            
             total=somatotal(npos[i]);
            
            }

tipo o unico inconveniente isis e q fica aparecendo,que o total e zero quando digito tudo negativo,mas e bom q da pra ver q o vetor ta so acumulando os positivos

 

 

DaniloInf,obrigado pela ideia,me mostrou q as vezes a simplicidade salva....ehehehe

 

fora a isso obrigado a todos, q me ajudaram nesse dia,agradeço de coração e desculpa qualquer coisa...eheheh

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.