Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
LuisGCarv

C Mesmo erro em dois programas diferentes

Recommended Posts

Sou iniciante na linguagem C e estou passando por uns maus bocados no momento que os meus programas entram em uma estrutura condicional ou laço de repetição.

O programa para de funcionar e vem aquela mensagem chata que o windows sempre dá quando encontra um erro, mas até agora eu não consegui identificar onde está o erro.

São programas simples, porque eu estou revendo apenas alguns conceitos que já aprendi. Precisa urgentemente da ajuda de vocês, porque estarei realizando provas nesse fim de semana e esses conceitos com certeza irão cair!

 

O erro só aparece nesse programa quando eu digito o segundo número do laço:

 

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

int main (void)
{
    int num[5];
    int soma = 0;

    setlocale (LC_ALL, "portuguese");
    for (int i= 0; i <= 4 ; i++ )
    {
        printf ("\nDigite o %d ° número = ", i+1);
        scanf ("%d",num);
    }

    for (int i=0;i<=4;i++)
    {
        soma += num;
    }

    printf ("A soma dos 5 números é %d", soma);
    system ("pause");    
    return 0;    
}

 

Esse é mais complicado e dá erro logo que eu digito o número

 

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

int main (void)
{
    int c, num;

    setlocale(LC_ALL, "Portuguese");
    printf ("Digite um número = ");
    scanf ("%d",num);
    int cont = 1;

    for (c=2;c<=num;c++)
    {
         if (num % c != 0)
         {
               cont ++;
               if (cont == num)
              {         
                   printf ("\n%d é um número primo", num);
            }
        }
          else
          {        
              printf ("\nO número %d é múltiplo de %d", num , c);
              break;    
          }
        
    }    

    if (num % 2 == 1)
    {
        printf ("\nO número %d é impar!",num);    
    }    
    else
    {
        printf ("\nO número %d é par!",num);    
    }
    
    system ("pause");        
    return 0;        
    }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

no scanf você tem q colocar o "&", exemplo scanf("%d", &num);

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente como o @VictorFreitasKing mencionou, falou o & no scanf ficaria exatamente assim

 

    scanf ("%d",&num);
Porque ele está guardando no endereço de num, então precisa indicar isso com o uso do &

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro programa:

 

cstdlib  - cabeçalhos sem o .h são usados pelo c++

 

Você criou um array de 5 elementos e nao usou os índices na entrada e nos loop for:  num

 

Int i =  0 é sintaxe do c89 se não me engano, criar a variável dentro do for so a partir do c99, no 89 você tem que criar a variável fora do for:

 

int i;

for (i= 0; i <= 4 ; i++ )

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

int main (void)
{
    int num[5];
    int soma = 0;
    int i;

    setlocale (LC_ALL, "portuguese");
    for (i= 0; i <= 4 ; i++ )
    {
        printf ("\nDigite o %d° número : ", i+1);
        scanf ("%d", &num[i]);
    }

    for (i=0;i<=4;i++)
    {
        soma += num[i];
    }

    printf ("A soma dos 5 números é %d\n", soma);
    system ("pause");    
    return 0;    
}

 

 

 

 

 

Editado por Benjamin Breeg
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @VictorFreitasKing  e @erique , obrigado pelo esclarecimento .

    Eu não acredito que esqueci esse conceito, já estou estudando ponteiros e já tinha aprendido que & direcionava ao endereço da variável.

    @Benjamin Breeg , eu ainda não conhecia essas regras, muito obrigado pelas dicas!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    1 hora atrás, LuisGCarv disse:

    @VictorFreitasKing  e @erique , obrigado pelo esclarecimento .

    Eu não acredito que esqueci esse conceito, já estou estudando ponteiros e já tinha aprendido que & direcionava ao endereço da variável.

    @Benjamin Breeg , eu ainda não conhecia essas regras, muito obrigado pelas dicas!

     

    uma dica, se dedica em ponteiros, quando você for estudar estruturas de dados é o que mais vai confundir...

    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 9 horas atrás, VictorFreitasKing disse:

     

    uma dica, se dedica em ponteiros, quando você for estudar estruturas de dados é o que mais vai confundir...

    Valeu pela dica!

    Uma dúvida que estou tendo é se tem como colocar um char pra definir as opções do switch/case.

    E se é possível colocar um if/else dentro de um switch/case.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    char c='b';
    int n = 10;
    switch (c){
    case 'a':
        //...
        break;
    case 'b':
        if(n == 10)printf("Igual");
        break;
    default:
        break;
    }

    Sim e sim!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×