Ir para conteúdo

Arquivado

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

JhOnE RoSsInI

calcular média

Recommended Posts

nao eu nao pego pronto nao, eu faço no visualg primeiro e depois eu passo em c++ só no começo depois eu paro com o visualg.Eu tava tentando fazer uma tabuada eu conssegui ficou assim olha:

 

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

int main(){
int tab,cont=1,num;
      printf("Informe um numero inteiro: ");
      scanf("%d",&num);
      while(cont>0 && cont<=10)
      printf("\n %d x %d = %d",num,cont++,(num*cont));
      system("Pause >null");
      return 0;
}
Ha e eu vou ler livros sobre c++/C#/JAVA

mas onde que eu conssigo esses livros?

a minha cidade é pequena num tem nada nela.

é caro pra comprar pela net esses livros será?

obrigado por me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Livros técnicos normalmente são caros, independente de você estar na livraria ou comprando pela internet.

Não compre nada do Schildt e nem o "C completo e total".

É só procurar por Americanas, Submarino ou site de qualquer livraria de uma cidade ao redor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tudo bem nem vou ver esses que você falow que não é bom.

olha tenho uma duvida aqui como que eu faço para voltar no inicio

 

#include <cstdlib>
#include <iostream>
main()
{
      int quant_repetir,cont,numero,exibir,i;
      char sair;
      system("color a");
      inicio;
      printf("Se desejar sair precione S ou C para continuar\n");
      scanf("%c",&sair);
      system("cls");
      printf("Informe a quantidade a a ser repetida: ");
      scanf("%d",&quant_repetir);
      system("cls");
      for(cont=1;cont<=quant_repetir;cont++)
      {
      system("cls");
      printf("Informe o numero desejado de 1 até 100\n\n");
      scanf("%d",&numero);
      if(numero>=0 && numero<=25)
      {             
      exibir=numero;
      printf("Ele esta entre 0 e 25 o número \x82:%d\n",exibir);
      system("Pause");
      }
      if(numero>25 && numero<=50)
      {
      exibir=numero;
      printf("Ele esta entre 25 e 50 o número \x82:%d\n",exibir);
      system("Pause");
      }
      if(numero>50 && numero<=75)
      {
      exibir=numero;
      printf("Ele esta entre 50 e 75 o numero \x82:%d\n",exibir);
      system("Pause");
      }
      if(numero>75 && numero<=100)
      {
      exibir=numero;
      printf("Ele esta entre 75 e 100 o número \x82:%d\n",exibir);
      system("Pause");
      }
      if(numero>100)
      printf("Número invalido");
      system("cls");
      printf("\nVoltando");
      for(i=0;i<5;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      void inicio; //como faço para voltar no começo eu sei que ta errado
      }
      if(sair=='S' or sair=='s')
      {
      system("cls");
      printf("\nFinalizando");
      for(i=0;i<5;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      exit(1);
      }
      }
      }
      system("cls");
      printf("\nFinalizando");
      for(i=0;i<5;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      exit(1);
      }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como você ir para um ponto específico (goto não são recomendados...) Portanto, você precisa fazer um laço para controlar a repetição. Abaixo segue um exemplo de utilização de do/while para repetir o seu código enquanto o usuário desejar:

 

int main()
{
  char opcao;
  do
  {
    // seu código aqui...
    fflush(stdin);
    printf("Deseja continuar (s/n): ");
    scanf("%c", &opcao);
  }
  while (opcao != 's' && opcao != 'S');
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fflush(stdin) pode ser substituído por:

 

while((c = getchar()) != '\n' && c != EOF);
  // descarta os caracteres até o \n ou fim da stream...

Só não é muito fácil para um iniciante entender este código...

 

passar stdin pra fflush() é pecado.

 

Você teria alguma sugestão para um iniciante utilizar? Já que provavelmente ele não irá implementar uma função de leitura?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho. Ler o tópico sobre o fflush(stdin) p/ não usar. Aí já acaba o problema de não entender o código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha como que ficou.

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
  int quant_repetir,cont,numero,exibir,i;
  char opcao;
  do
  {
    system("color a");
      printf("Se desejar sair precione S ou C para continuar\n");
      scanf("%c",&opcao);
      if(opcao=='S' or opcao=='s')
      {
      system("cls");
      printf("\nFinalizando");
      for(i=0;i<5;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      exit(1);
      }
      }
      system("cls");
      printf("Informe a quantidade a ser repetida: ");
      scanf("%d",&quant_repetir);
      system("cls");
      for(cont=1;cont<=quant_repetir;cont++)
      {
      system("cls");
      printf("Informe o numero desejado de 1 até 100\n");
      scanf("%d",&numero);
      if(numero>=0 && numero<=25)
      {             
      exibir=numero;
      printf("Ele esta entre 0 e 25 o número \x82: %d\n",exibir);
      system("Pause");
      }
      if(numero>25 && numero<=50)
      {
      exibir=numero;
      printf("Ele esta entre 25 e 50 o número \x82: %d\n",exibir);
      system("Pause");
      }
      if(numero>50 && numero<=75)
      {
      exibir=numero;
      printf("Ele esta entre 50 e 75 o numero \x82: %d\n\n",exibir);
      system("Pause");
      }
      if(numero>75 && numero<=100)
      {
      exibir=numero;
      printf("Ele esta entre 75 e 100 o número \x82: %d\n",exibir);
      system("Pause");
      }
      if(numero>100 or numero<0)
      {
      system("cls");
      printf("Número ou letra invalido\n");
      printf("\nVoltando");
      for(i=0;i<5;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      }
      }
      system("cls");
      printf("\nFinalizando");
      for(i=0;i<5;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      exit(1);
      }// seu código aqui...
    fflush(stdin);
    printf("Deseja continuar (s/n): ");
    scanf("%c", &opcao);
  }
  while (opcao != 's' && opcao != 'S');
  return 0;
}
mas ele não esta retornando porque?

Compartilhar este post


Link para o post
Compartilhar em outros sites

}// seu código aqui...
fflush(stdin);
printf("Deseja continuar (s/n): ");

 

'Acabamos' de falar p/ não usar o fflush.

 

 

{
exit(1);
}

 

Me explique o motivo das chaves. Olhe bem onde estão esses exit e você vai descobrir porque não retorna.

 

'exibir' é uma variável à toa.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao eu nao pego pronto nao, eu faço no visualg primeiro e depois eu passo em c++ só no começo depois eu paro com o visualg.Eu tava tentando fazer uma tabuada eu conssegui ficou assim olha:

 

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

int main(){
int tab,cont=1,num;
      printf("Informe um numero inteiro: ");
      scanf("%d",&num);
      while(cont>0 && cont<=10)
      printf("\n %d x %d = %d",num,cont++,(num*cont));
      system("Pause >null");
      return 0;
}
Ha e eu vou ler livros sobre c++/C#/JAVA

mas onde que eu conssigo esses livros?

a minha cidade é pequena num tem nada nela.

é caro pra comprar pela net esses livros será?

obrigado por me ajudar.

 

Sobre livros, acessa <www.estantevirtual.com.br> é um grupo de livrarias espalhadas pelo Brasil que possuem vários títulos usados, a preços às vezes 90% menores que o preço de mercado. Já comprei algumas vezes e recomendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 }// seu código aqui...
 fflush(stdin);
 printf("Deseja continuar (s/n): ");

'Acabamos' de falar p/ não usar o fflush.

 

 

 {
 exit(1);
 }

Me explique o motivo das chaves. Olhe bem onde estão esses exit e você vai descobrir porque não retorna.

 

'exibir' é uma variável à toa.

 

Agora eu corrigi novamente funcionou corretamente olha como ficou

 

#include <stdio.h>
#include <stdlib.h>
int main()
{
      int quant_repetir,cont,numero,i;
      char opcao;
      
      system("color a");
      printf("Deseja continuar (S/N): ");
      scanf("%C",&opcao);
      if(opcao=='n' or opcao=='N')
      {
      system("cls");
      printf("\nFinalizando");
      for(i=0;i<3;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      exit(1);
      }
      }
      system("cls");
      printf("Informe a quantidade a ser repetida: ");
      scanf("%d",&quant_repetir);
      system("cls");
      for(cont=1;cont<=quant_repetir;cont++)
      {
      system("cls");
      printf("Informe o numero desejado de 1 até 100\n");
      scanf("%d",&numero);
      if(numero>=0 && numero<=25)
      {             
      printf("Ele esta entre 0 e 25 o número \x82: %d\n\n",numero);
      system("Pause");
      }
      if(numero>25 && numero<=50)
      {
      printf("Ele esta entre 25 e 50 o número \x82: %d\n\n",numero);
      system("Pause");
      }
      if(numero>50 && numero<=75)
      {
      printf("Ele esta entre 50 e 75 o numero \x82: %d\n\n",numero);
      system("Pause");
      }
      if(numero>75 && numero<=100)
      {
      printf("Ele esta entre 75 e 100 o número \x82: %d\n\n",numero);
      system("Pause");
      }
      if(numero>100 or numero<0)
      {
      system("cls");
      printf("Número ou letra invalido\n");
      printf("\nVoltando");
      for(i=0;i<3;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      main();
      }
      }
      }
      system("cls");
      printf("\nFinalizando");
      for(i=0;i<3;i++)
      {
      _sleep(1000);
      printf(". ");
      }
      {
      exit(1);
      }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo amor de deus, tira esse main() de dentro do próprio main. Procure sobre stack overflow/estouro de pilha p/ saber porquê.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invés de chamar o main() para repetir todo o código novamente, o que você precisaria fazer era colocar o do-while para controlar as várias repetições. Além disso em C, OR não existe, é preciso colocar ||.

 

Abaixo segue o código alterado, apesar de achar um pouco estranho que tenha dois laços controolando as repetições (um onde o usuário diz a quantidade de vezes que quer repetir, e o outro onde o usuário informa se deseja ou não continuar).

 

Observe também a validação do valor digitado utilizando o while e a utilização de if/else aninhado, ao invés de utilizar um monte de if independentes.

 

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

int main()
{
  int quant_repetir,cont,numero,i;
  char c, opcao;
  system("color a");
  do {
    system("cls");
    printf("Informe a quantidade a ser repetida: ");
    scanf("%d",&quant_repetir);
    system("cls");
    for(cont=1;cont<=quant_repetir;cont++)
    {
      system("cls");
      printf("Informe o numero desejado de 1 até 100\n");
      scanf("%d",&numero);
      while (numero < 0 || numero > 100)
      {
        printf("Numero invalido!\n");
        printf("Informe o numero desejado de 1 até 100\n");
        scanf("%d",&numero);
      }
      if(numero<=25)
      {             
        printf("Ele esta entre 0 e 25 o número \x82: %d\n\n",numero);
        system("Pause");
      }
      else if(numero<=50)
      {
        printf("Ele esta entre 25 e 50 o número \x82: %d\n\n",numero);
        system("Pause");
      }
      else if(numero<=75)
      {
        printf("Ele esta entre 50 e 75 o numero \x82: %d\n\n",numero);
        system("Pause");
      }
      else
      {
        printf("Ele esta entre 75 e 100 o número \x82: %d\n\n",numero);
        system("Pause");
      }
    }
    printf("Deseja continuar (S/N): ");
    while((c = getchar()) != EOF && c != '\n'); // descarta os caracteres até o \n ou fim da stream...
    scanf("%c", &opcao);
  }
  while (opcao !='n' && opcao != 'N');
  system("cls");
  printf("\nFinalizando");
  for(i=0;i<3;i++)
  {
    _sleep(1000);
    printf(". ");
  }
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu n recomendo muitos os comandos:

system("pause");
system("cls");
Enfim... embora eu também use as vezes ele não se torna portável para todos sistemas operacionais.

Bom só uma dica ;D

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

é tem outros camandos tambem como o getch(); para pausar a tela, para limpar a tela eu nem sei você ou alguem sabe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem zuar, o pessoal gosta de procurar agulha no palheiro, parem de se preocupar com telinha sendo limpa, ou pra pausar a tela ou até msm pra ficar colocando corzinha no programa pra ficar + bonitinho.

pela mor neh, utilizem o tempo pra algo q realmente vai acrescentar..

 

Não qrem + problemas com a tela q some faz assim:

 

*Compila o programa só pra gerar o executável.

*E roda ele pelo DOS. FIM

 

[]s

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.