Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvidas De Iniciante Sobre C.


Bolt 4

Pergunta

:huh: Olá,

Estou tentando aprender C em casa mesmo sozinho e vendo esse fórum resolvi tentar aumentar a velocidqde do meu aprendizado.

O primeiro programa que fiço,foi a soma de dois números,ficou assim:

#include<stdio.h>

int main()

{

int a,b;

printf("\n\nEsse e um programa para somar dois numeros.\n\n");

printf("\n-----------Siga as instruções abaixo:---------------\n\n");

printf("\nDigite o primeiro numero:")

scanf("%d",&a);

printf("\nDigite o segundo numero:");

scanf("%d",&b);

printf("\n\nO resultado e %d",a+b );

printf("\n\n\nObrigado,volte sempre!\n\n");

printf("----------------Para sair tecle ENTER.-----------\n\n");

return 0;

}

Após ter feito,tentei fazer a soma de 3 números, mas não consegui,tipo se aumentar mais uma letra,um printf,um scanf e somando a+b+c,o resultado é um monte de numeros.

Poderiam me ajudar? :)

Link para o comentário
Compartilhar em outros sites

23 respostass a esta questão

Posts Recomendados

  • 0

Salve!

Seja bem vindo ao fórum. Espero que possamos te ajudar a agregar conhecimento e que você também possa passar seus conhecimentos aos demais membros (ou não) deste fórum.

Bolt 4 fazendo o que você disse:

[...]mas não consegui,tipo se aumentar mais uma letra,um printf,um scanf e somando a+b+c,o resultado é um monte de numeros.

Deu tudo certo. Veja:

#include <stdio.h>
int main()
{
    int a,b,c; /* adicionei uma variavel chamda c */
    printf("\n\nEsse e um programa para somar dois numeros.\n\n");
    printf("\n-----------Siga as instruções abaixo:---------------\n\n");
    printf("\nDigite o primeiro numero:");
    scanf("%d",&a);
    printf("\nDigite o segundo numero:");
    scanf("%d",&b);
    printf("\nDigite o terceiro numero:"); /* peço para digitar o valor */
    scanf("%d",&c); /* e aqui faço sua leitura */
    printf("\n\nO resultado e %d",a+b+c ); /*agrego a variavel na soma*/
    printf("\n\n\nObrigado,volte sempre!\n\n");
    printf("----------------Para sair tecle ENTER.-----------\n\n");
    return 0;
}

Certo?

Veja se foi mais ou menos esse o seu resultado e qualquer coisa é só falar cara ;)

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

:D willian rodrigues,

Primeiramente obrigado pelas boas vindas espero ser ajudado e no que puder ajudar irei fazê-lo,porém meus conhecimentos não são muitos,então minha ajuda pode demorar um pouco,mas no que eu puder ajudar farei com maior prazer. :)

Ontem fiço esse programinha várias vezes exatamente como foi feito enão dava certo,talvez salvei no diretório errado,cabeça quente,na verdade não sei,rsss. Mas fiço agora e realmente deu certo,até acrescentei algo que não estava dando certo ontem:

#include <stdio.h>

int main()

{

int a,b,c; /

printf("\n\nEsse e um programa para somar dois numeros.\n\n");

printf("\n-----------Siga as instruções abaixo:---------------\n\n");

printf("\nDigite o primeiro numero:");

scanf("%d",&a);

printf("\nDigite o segundo numero:");

scanf("%d",&b);

printf("\nDigite o terceiro numero:");

scanf("%d",&c); /* e aqui faço sua leitura */

printf("\n\nA soma de %d +%d+%d e igual a %d",a,b,c,a+b+c ); /*Adicionei a+b+c=soma*/

printf("\n\n\nObrigado,volte sempre!\n\n");

printf("----------------Para sair tecle ENTER.-----------\n\n");

return 0;

}

Agora me surgiu outra dúvida,como faço para uma divisão dar o resultado exato? Tipo 3 dividido por 2 =1.5. Pois a divisão do mesmo modo acima fica 3 dividido por 2=1.

Obrigado pela ajuda. :D

Link para o comentário
Compartilhar em outros sites

  • 0

Salve!

No caso, sua divisão retorna um valor inteiro exatamente por tratar com valores inteiros. Para que sua divisão seja feita de uma forma precisa você pode utilizar float ou double (vide suas faixas de precisões). Basta mudar o tipo de suas variáveis (int no momento) para uma das duas aconselhadas que dará certo.

Qualquer coisa é só falar!

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

:) beleza,

Obrigado pelas boas-vindas kandrade,espero aproveitar o potencial do fórum,ajudando como posso. :)

Tentei mas dá dando erro,devo estar errando na biblioteca,acho que é no início,veja:

#include<stdio.h>

int main ()

{

float a,b;

printf("\n\nPrograma de divisao\n\n");

printf("\n\n-------siga as instrucoes abaixo---\n\n");

printf("\nDigite o primeiro numero:");

scanf("%f",&a);

printf("\n\nDigite o segundo numero:\n\n",B);

scanf("f",&b);

printf("\n\nA divisao de %f e %f e igual a: %f.\n\n",a,b,a/b);

return 0;

}

Ao compilar não há erros,após executado,ele pede para digitar o primeiro numero,digito e então dou enter,ele já vai direto para o fim e a divisão dá errada,qual foi meu erro?

Na tentativa de consertar,troquei int main por main,não deu certo,por void,void(),int main(void),igualmente.

Meu amigo google também não pode me ajudar. Podem me ajudar novamente? :)

Link para o comentário
Compartilhar em outros sites

  • 0

Salve!

Podemos sim!!!

Vendo a sua tentativa de postar o código percebi um erro simples no último scanf. O código ficaria assim:

#include <stdio.h>
int main ()
{
float a,b;
printf("\n\nPrograma de divisao\n\n");
printf("\n\n-------siga as instrucoes abaixo---\n\n");
printf("\nDigite o primeiro numero:");
scanf("%f",&a);
printf("\n\nDigite o segundo numero:\n\n");
scanf("%f",&b);
printf("\n\nA divisao de %f e %f e igual a: %f.\n\n",a,b,a/b);
return 0;
}

;)

Qualquer coisa é só falar!

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

willian rodrigues,

Me desculpe mas estava falando de divisão:

#include<stdio.h>

int main ()

{

float a,b;

printf("\n\nPrograma de divisao\n\n");

printf("\n\n-------siga as instrucoes abaixo---\n\n");

printf("\nDigite o primeiro numero:");

scanf("%f",&a);

printf("\n\nDigite o segundo numero:\n\n");

scanf("f",&b);

printf("\n\nA divisao de %f e %f e igual a: %f.\n\n",a,b,a/b);

return 0;

}

A soma já está OK. :)

Link para o comentário
Compartilhar em outros sites

  • 0

Ao compilar não há erros,após executado,ele pede para digitar o primeiro numero,digito e então dou enter,ele já vai direto para o fim e a divisão dá errada,qual foi meu erro?

provavelmente ele pula porque voce teve estar digitando um número com "," vírgula. Os números float devem ser digitados com ".". Ex: 1.5

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Voltei,

Bem o problema,como havia dito William Rodrigues,estava no ultimo scanf,esqueci um % no f,quando chegava a hora dele trabalhar ele pulava e ia direto para o final,como kandrade,suspeitava. Será que poderia usar esse post mas a frente para eventuais futuras dúvidas?

Eu estou impressionado com a velocidade de respostas. :blink:

Link para o comentário
Compartilhar em outros sites

  • 0

Salve!

Se o assunto não for muito a ver com o deste post você poerá abrir um outro post...

Ah, e tome como prática sempre procurar aqui no fórum prá ver se não há já um tópico relacionado com a sua dúvida, assim teremos apenas tópicos com assuntos diferentes o que torna o nosso fórum mais rico em conteúdo diversificados.

Qualquer coisa é só falar!

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

Captei,

William Rodrigues,entendi o que quiz me dizer,estou com outro problema.

Tipo,3 pessoas em uma casa,dividindo economias,água,energia,telefone,provedor,serviços,sendo que agua,energia,telefone os 3 dividem,e provedor e serviços apenas joao paga,fiço esse esquema,compilo tudo certo,na hora de executar,aparece para digitar a água,digito e aparece um aviso do windows falando que deu um problema e tem que fechar,veja o programa:

#include <stdio.h>

int main()

{

float A,E,T,P,S;

printf("\nValor de agua:");

scanf("%f",A);

printf("\nValor de Energia:");

scanf("%f",E);

printf("\nValor de telefone:");

scanf("%f",T);

printf("\nValor de provedor:");

scanf("%f",P);

printf("\nValor de serviços de manutenção de rede:");

scanf("%f",S);

printf("\n\nValor para Maria e jose pagar:%f",(A+E+T)/3);

printf("\n\nValor para joão pagar:%f",((A+E+T)/3)+P+S);

return 0;

}

Dessa vez não pude ver o problema,não parece ser sinais,parece muito o problema anterior,dá erro antes de digitar a Energia,tenho apenas uma semana de férias,por isso minha "pressa" de aprender,estou gostando muito disso,se estiver fazendo algo errado por favor podem me dizer,não irei me aborrecer,não quero prejudicar o fórum,postei aqui novamente por que acho que seja problema de iniciante .Qualquer coisa pode falar pelo forum ou por mp,entenderei.Obrigado! Uso Borland intercefa-C.

Link para o comentário
Compartilhar em outros sites

  • 0

:) beleza?

Olha só,fiço o seguinte,troquei o borland 5.5 pelo LCCWIN32(tenho os dois mais o DJGPP instalados),simplifiquei mais o programa,compilei e tá beleza. Veja o esquema:

#include <stdio.h>

int main()

{

float a,e,t,i,p;

printf("agua:");

scanf("%f",&a);

printf("energia:");

scanf("%f",&e);

printf("telefone:");

scanf("%f",&t);

printf("internet:");

scanf("%f",&i);

printf("provedor");

scanf("%f",&p);

printf("Maria e Jose:%5.2f",(a+e+t)/3);

printf("joao:%5.2f",((a+e+t)/3)+i+p);

return 0;

}

Usei o %5.2f para limitar a quantia de numeros na divisão,vi isso numa apostila,mas não sabia que servia pra isso,então fui mudando os valores,tipo 5.3,5.4.... e bingo,caiu a ficha.

Queria usar as outras funções,para praticar,ainda não as conheço,vocês tem alguma sujestão,de como posso usá-las? Tipo while,double,if,else,for,etc...,até lá vou continuar procurando. ^_^

Link para o comentário
Compartilhar em outros sites

  • 0

Salve!

No código abaixo está faltando apenas o & no scanf

#include <stdio.h>
int main()
{
float A,E,T,P,S;
printf("\nValor de agua:");
scanf("%f",A);
printf("\nValor de Energia:");
scanf("%f",E);
printf("\nValor de telefone:");
scanf("%f",T);
printf("\nValor de provedor:");
scanf("%f",P);
printf("\nValor de serviços de manutenção de rede:");
scanf("%f",S);
printf("\n\nValor para Maria e jose pagar:%f",(A+E+T)/3);
printf("\n\nValor para joão pagar:%f",((A+E+T)/3)+P+S);
return 0;
}

Quanto a %5.2f para limitar a quantia de numeros beleza cara, é isso aí...

Quanto aos demais comando simples, tais como os citados, acredito que envolva um pouco de lógica (temos o fórum de Lógica de Programação) simples.

Acho que há muitos tutoriais (e até apostilas) simples na Internet com referência a esses simples comandos que te dão a base para qualquer linguagem de programação.

Procure saber mais sobre esses simples comandos e caso precise de ajuda em alguns deles, fique a vontade para postar. ;)

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

É interessante entender a lógica envolvida em programação, aqui no fórum tem uma sala que se chama Lógica de Programação, e ela ajuda a entender esses conceitos básicos de programação, veja este tópico por exemplo, fala um pouco sobre laços:

http://scriptbrasil.com.br/forum/index.php?showtopic=84690

Link para o comentário
Compartilhar em outros sites

  • 0

:) beleza?

Renatomejias,obrigado pela atenção,todas dicas serão válidas,na logica da programação,tenho que ler palavras que são diferentes da qual estou trabalhando,para aprendê-la nesse instante,teria que voltar,e aprender novamente,para saber usá-la,comparando com o que querem dizer na linguagem aplicada,isso pode me atrazar um pouco.

Estou seguindo as aulas de um site(indicadas por um cara gente boa) que estão me ajudando muito,estou aprendendo muito,e o melhor rápido.

a lógica seria interessante para um iniciante que poderia seguir as duas partes,mas para isso acho que teriam que ter apostilas elaboradas para isso,digo para quem está aprendendo sozinho.

Por favor se descordar,responda,quero entender seu ponto de vista,talvez posso estar errado.

Vejo que várias pessoas estão lendo esse tópico,então irei deixar o site para que possam aprenderem também.

O site é esse AQUI ,leiam com atenção,e seguem as aulas(para quem quer aprender sozinho).

Link para o comentário
Compartilhar em outros sites

  • 0

Salve!

Velho, a lógica influência muito na hora de programar. Principalmente porque quando se tem algo para resolver, boa parte da solução está na lógica e não na ferramenta (linguagem) utilizada. Claro que o domínio de uma boa linguagem de programação faz a diferença mas para alcançar isso precisa ralar muito.

Se você apenas traduzir (o que for possível) alguns comando já irá trabalhar com a lógica (explicita no outro fórum) e verá que não é tão diferente assim.

Qualquer coisa é só falar!

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...