Jump to content

Archived

This topic is now archived and is closed to further replies.

  • 0
Diego Hamed

Dev c++ programa básico

Question

Olá amigos, sou novo no site e espero conseguir algumas respostas pra alguns programas que ando fazendo para treinar. 

Neste aqui encontro um problema chatinho; ele pede quantos números tu quiser colocar, pegará somente os pares e fará a média, desconsiderando os ímpares, e assim que digitar o nº 0, ele para a contagem e fecha a conta. O problema é que ele considera esse nº0 como parte da conta, adicionando +1 ao contador, gostaria de saber como resolver isso. Aqui vai o programa:

 

#include<stdio.h>
#include<stdlib.h>
imprime(float mean, int sum,int c){
    mean=sum/c;
    printf("The sum is:%.2d\n",sum);
    printf("The mean of the pairs numbers is:%.2f\n",mean);
}

int main()
{
    int n,sum,c; //n= number you pressed , sum= sum of the numbers, c= counter
    float mean; //mean= mean of the numbers
    sum=0;
    c=0;
    printf("This program will make the mean only of the pairs numbers;\nTo end the count, just press 0\n");
    do
 {
        printf("Number:\n");
        scanf("%d",&n);
        
        if(n%2==0)
        sum=sum+n;
        c=c+1;
        if((n%2)!=0)
        c=c;
        sum=sum;
        
        
    }while(n!=0);
    imprime(mean,sum,c);
system("pause");
}

 

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

6 minutos atrás, Prog disse:

if (n == 0) break;

Utilizei o comando, porém não consegui resolver o caso; ele continua fazendo a conta errada, já tentei mudar o WHILE pra DO-WHILE e também não resolveu.

Share this post


Link to post
Share on other sites
1 hora atrás, Diego Hamed disse:

Olá amigos, sou novo no site e espero conseguir algumas respostas pra alguns programas que ando fazendo para treinar. 

Neste aqui encontro um problema chatinho; ele pede quantos números tu quiser colocar, pegará somente os pares e fará a média, desconsiderando os ímpares, e assim que digitar o nº 0, ele para a contagem e fecha a conta. O problema é que ele considera esse nº0 como parte da conta, adicionando +1 ao contador, gostaria de saber como resolver isso. Aqui vai o programa:

#include<stdio.h>
#include<stdlib.h>
imprime(float mean, int sum,int c){
    mean=sum/c;
    printf("The sum is:%.2d\n",sum);
    printf("The mean of the pairs numbers is:%.2f\n",mean);
}


int main()
{
    int n,sum,c; //n= number you pressed , sum= sum of the numbers, c= counter
    float mean; //mean= mean of the numbers
    sum=0;
    c=0;
    printf("This program will make the mean only of the pairs numbers;\nTo end the count, just press 0\n");
    do
 {
        printf("Number:\n");
        scanf("%d",&n);
        
        if(n%2==0)
        sum=sum+n;
        c=c+1;
        if((n%2)!=0)
        c=c;
        sum=sum;
        
        
    }while(n!=0);
    imprime(mean,sum,c);
system("pause");
}

 

Olá, inicie o programa verificando antes se o 0 (zero) foi digitado:

 

#include<stdio.h>
#include<stdlib.h>
imprime(float mean, int sum,int c) {
	mean=sum/c;
	printf("The sum is:%.2d\n",sum);
	printf("The mean of the pairs numbers is:%.2f\n",mean);
}

int main() {
	int n,sum,c; //n= number you pressed , sum= sum of the numbers, c= counter
	float mean; //mean= mean of the numbers
	sum=0;
	c=0;
	printf("This program will make the mean only of the pairs numbers;\nTo end the count, just press 0\n");
	do {
		printf("Number:\n");
		scanf("%d",&n);

		if (n == 0) {//se o numero for 0 não faço a soma
			break;
		} else if(n%2==0) {
			sum=sum+n;
			c=c+1;
			if((n%2)!=0)
				c=c;
			sum=sum;
		}
	} while(n!=0);
	imprime(mean,sum,c);
	system("pause");
}

 

Share this post


Link to post
Share on other sites
3 horas atrás, JosimarNew disse:

 

Olá, inicie o programa verificando antes se o 0 (zero) foi digitado:

 


#include<stdio.h>
#include<stdlib.h>
imprime(float mean, int sum,int c) {
	mean=sum/c;
	printf("The sum is:%.2d\n",sum);
	printf("The mean of the pairs numbers is:%.2f\n",mean);
}

int main() {
	int n,sum,c; //n= number you pressed , sum= sum of the numbers, c= counter
	float mean; //mean= mean of the numbers
	sum=0;
	c=0;
	printf("This program will make the mean only of the pairs numbers;\nTo end the count, just press 0\n");
	do {
		printf("Number:\n");
		scanf("%d",&n);

		if (n == 0) {//se o numero for 0 não faço a soma
			break;
		} else if(n%2==0) {
			sum=sum+n;
			c=c+1;
			if((n%2)!=0)
				c=c;
			sum=sum;
		}
	} while(n!=0);
	imprime(mean,sum,c);
	system("pause");
}

 

Cara, perfeito! Matou a charada, valeu a resposta! É um pouco da minha falta de conceito mesmo que me atrapalhou hehe.

 

Share this post


Link to post
Share on other sites

  • Similar Content

    • By Fernando Sagaz
      Bom dia, eu tenho a source da dll que faz algumas modificações no client do jogo, extendendo a quantidade de imagens e effeitos que o client normalmente não suportaria e após eu compilar, tento executar o client e aparece o seguinte erro:
      Não foi possível localizar o ponto de entrada do procedimento DirectDrawCreate na bilbioteca de vínculo dinâmico...

       
      Já linkei diversas libs no projeto, como: ddraw.lib d3d9.lib.. diversas libs em Microsoft DirectX SDK de diversas versões desde 2005 à 2010, e nada muda.
      No entanto, não há erros ao compilar o projeto.
      Aqui está uma parte do arquivo dllmain.cpp em que chama o tal DirectDrawCreate:
      static int InitMain() { char systemDirectory[MAX_PATH] = {}; char systemDDrawDllPath[MAX_PATH] = {}; GetSystemDirectory(systemDirectory, MAX_PATH); sprintf(systemDDrawDllPath, "%s\\ddraw.dll", systemDirectory); orig_ddraw = LoadLibrary(systemDDrawDllPath); if(!orig_ddraw) { MessageBox(NULL, "Cannot load system 'ddraw.dll'.", PROJECT_NAME, MB_OK|MB_ICONERROR); exit(-1); } #ifdef __CONFIG__ loadConfig(); HRESULT result = Init(should_use_extended, should_use_alpha); #else HRESULT result = Init( #ifdef __EXTENDED_FILE__ true, #else false, #endif #ifdef __ALPHA_SPRITES__ true #else false #endif ); #endif if(result != S_OK) { if(result == E_OUTOFMEMORY) { MessageBox(NULL, "Failed to allocate renderer memory.", PROJECT_NAME, MB_OK|MB_ICONERROR); exit(-1); } else { MessageBox(NULL, "This version of client is unsupported.", PROJECT_NAME, MB_OK|MB_ICONERROR); exit(-1); } } return 1; } extern "C" { __declspec(dllexport) HRESULT WINAPI DirectDrawCreate(void* lpGUID, void* lplpDD, void* pUnkOuter) { FARPROC ddcreate = GetProcAddress(orig_ddraw, "DirectDrawCreate"); if(!ddcreate) return E_INVALIDARG; return ((HRESULT (WINAPI *)(void*, void*, void*))(DWORD)(ddcreate))(lpGUID, lplpDD, pUnkOuter); } } extern "C" { BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved) { switch(dwReason) { case DLL_PROCESS_ATTACH: return InitMain(); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return 1; } } Alguém poderia me ajudar com este problema?
    • By chalamisterio
      Oi boa noite sou novo na programação e também no javaScript.
      Estou tentando fazer um Exercício onde é digitado a quantidade de Alunos é adicionada.
      Após a isso é digitado o nome do aluno e suas três notas.
      O programa deve calcula a média e dizer o status do aluno. Se é aprovado ou em exame e reprovado.
      o código parece estar corrento mas não exibe não na tela.
      Acho que nem entra no Loop do for
      Mas se alguém puder me ajudar fico grato
       



    • By novo na programação
      O sistema consiste em ler os dados cadastrados (valores estáticos) de uma entrevista e
      fornecer as informações para as seguintes perguntas:
       
      1 - Quantidade de mulher e homens na área? (% de cada sexo)
      2 - Faixa etária? (Menor e maior idade por sexo). Criar um vetor idade para cada sexo.
      3 - Quem ganha mais? Homem ou Mulher? (Comparar médias de salários)
      4 - Quem é mais especializado? (Comparar quantidade com pós-graduação %)
       
      Ex1. Perguntas?
      Sexo (1- H, 2-M)
      Idade (?)
      Salário (?)
      Possui pós-graduação? (1-S, 2-N)

      Entrada (estática)

      Entrevistado 1
      Sexo = 1
      Idade = 19
      Salário = 4.000,00
      Possui pós-graduação = 2

      Entrevistado 2
      Sexo = 2
      Idade = 25
      Salário = 3.000,00
      Possui pós-graduação = 1

      Entrevistado 3
      Sexo = 1
      Idade = 18
      Salário = 5.000,00
      Possui pós-graduação = 2

      Entrevistado 4
      Sexo = 1
      Idade = 23
      Salário = 6.000,00
      Possui pós-graduação = 1 

      Entrevistado 5
      Sexo = 2
      Idade = 30
      Salário = 2.000,00
      Possui pós-graduação = 1

      SAÍDA
      1 - Quantidade de mulher e homens na área?
      60% homens e 40% mulheres
      2 - Faixa etária?
      homens (18-23) e mulheres (25-30)
      3 - Quem ganha mais? Homem ou Mulher?
      Homens (média 5.000,00) e Mulheres (média 2.500,00)
      4 - Quem é mais especializado?
      homens - 33% e mulheres - 100%
      Cálculo = qtdhomens com pós/qtdhomens *100
    • By xxceres
      Estou fazendo um algoritmo que solicita a posição (latitude e longitude) do usuário 1 e a posição do usuário 2. 
      Considerando a distância segura para o seu deslocamento, por exemplo, em 20 metros. Caso a distância segura 
      seja ultrapassada, dispare uma mensagem de alerta para o usuário.  


      Algoritmo "Calculo da Distancia"

       
      Var x1,x2,y1,y2, d: real Inicio escreval ("Digite no ponto A o valor de X1") leia (x1) escreval ("Digite no ponto A o valor de Y2") leia (y1) escreval ("Digite no ponto B o valor de X2") leia (x2) escreval ("Diite no ponto B o valor de Y2") leia (y2) d<- raizq(((x2-x1)^2)+((y2-y1)^2)) escreval("A distancia entre o ponto A e B no plano cartesiano é: ",d) Fimalgoritmo  
    • By makioplayer
      A pressão da minha mesa não está funcionando apenas no Paint Tool SAI, alguém sabe o que pode ser?
       
      Ela é uma Genius mousepen i608x.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.