Thihup
(usa Manjaro Linux)
Enviado em 18/12/2015 - 22:35h
Olá amigo.
Fazer esse sistema que você quer será bem complicado para você no início.
Vou recomendar dar uma olhada na explicação detalhada do Paulo nesse tópico:
http://www.vivaolinux.com.br/topico/C-C++/Metodo-Newton-Bisseccao-e-Secante-AJUDA/
Mas vou te explicar por cima.
scanf() possui o primeiro argumento com a string de formatação [semelhante ao printf, %d para inteiro, %c para caractere...] e os outros argumentos de substituição [bem semelhante ao printf].
Mais para frente você verá que quando uma função é chamada ela copia os argumentos e dentro da função é feito "a mágica", sem interferir nas variáveis passadas por argumento. Mas como nosso caso é alterar o valor da variável passada, precisaremos passar o endereço da variável, e não só a "cópia" dele.
Para isto é utilizado o operador
& antes do nome da variável.
Em resumo, para utilizar seria algo assim:
#include <stdio.h>
int main(){
printf("Digite sua idade: ");
int idade;
scanf("%d",&idade); // Grava o valor do stdin [entrada principal, geralmente o teclado]
printf("Voce possui %d anos",idade);
return 0;
}
Acho que se você testar assim você já entenderá o principio, mas você pediu também para gravar o nome que a pessoa digitar, e isso é bem complexo para iniciante, pois envolve
buffers e alguns cuidados a parte.
Podemos suprir isso no seu exemplo fazendo assim:
#include <stdio.h>
int main(){
int so;
printf("Digite o numero correspondente ao seu sistema operacional:\n1)Linux\n2)Windows\n3)Mac\n: ");
scanf("%d",&so);
return 0;
}
E você pediu mais, pediste para verificar qual a entrada do usuário e mostrar uma mensagem. Isso é outro tema, acho que você está se apressando de mais e vai acabar confuso. Recomendo pesquisar mais a fundo [e com calma] depois.
Mas respondendo a sua pergunta, mas as estruturas de decisão seguem um padrão assim:
if(Operacao Booleana){
// Caso a operacao booleana for verdadeira faz isso
}
Substituindo a "Operacao Booleana" pelo que você precisar no momento. Nesse caso você quer comparar, então você utiliza o operador
== , deixando assim:
if(so == 1){ // Se for Linux
printf("Linux\n");
}
if(so == 2){ // Se for Windows
printf("Windows\n");
}
if(so == 3){ // Se for Mac
printf("Mac\n");
}
Ali só será executado o que for verdadeiro, por exemplo, se a pessoa digitar 1, só entrará no primeiro if, e nos outros não. Mas você precisaria ver melhor a estrutura
if()/else if()/else . Pois aí teria um erro: caso o usuário digitar 4 [por exemplo], não aparecerá nada.
É claro que isso foi a ponta do iceberg. Pesquise bem melhor a respeito, será dificil explicar tudo aqui e daria um texto enorme. Pesquise no VOL, creio que possua bons artigos a respeito disto.
Espero ter ajudado
[]'s
T+
[Se ajudei, marque o tópico como resolvido e clique em melhor resposta]
--
Att,
Thiago Henrique Hüpner
(Mensagem scaneada pelo antivírus........ops! não precisa, afinal eu uso Linux!)