Ir ao conteúdo
  • Cadastre-se
Holocausto

Exercicio em c.

Posts recomendados

Bom dia galera,

Bom, estou com algumas duvidas sobre os comandos for, while e do-while, na teoria parece até fácil, mas na pratica me compliquei todo, estou tentando resolver esses 3 exercícios abaixo, no entanto na hora da execução sempre da erro e não retorna os valores correto.

trabb.jpg

Preciso de ajuda para resolver esses exercícios, ficarei grato caso alguém conseguir me explicar com resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro que está dando?

Poste o código para darmos uma olhada

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

cara, estou no trampo e nao consigo visualizar a imagem... mas posso tentar te passar um resuminho sobre o que é cada uma... xD

for

...int a;int b;b=0;for (a=0; a<4; a++){  b=b+a;} 

neste caso, o for agirá da seguinte maneira:

-primeiro (no a=0) ele define o valor inicial de a (que será 0)

-depois (no a<4) ele repetirá o que tiver dentro do for enquanto o a for menor que 4

-por último (a++), depois de chegar na ultima linha de comando dentro do for, o valor atual de a tera uma unidade adicionada (se caso a estava com o valor 0, ficará com 1 - isso serve para que o for não fique rodando infinitamente)

while

...int a;int b;a = 0;b = 0;while (a<4){  b=b+a;  a++;} 

o while, funciona como o for, a única diferença é que você tem que definir o valor de a antes do while, e colocar o comando para a receber mais 1 em seu valor total.

do while eu não manjo... então melhor não falar nada do que passar informação errada... ^^

espero ter ajudado ao menos a entender como eles funcionam... \o/

Compartilhar este post


Link para o post
Compartilhar em outros sites

while ( <expressão> ) {

<comandos>

}

Enquanto a <expressão> for verdadeira, o programa continua executando os comandos que estão no bloco do while. Essa expressão pode ser qualquer expressão lógica que retorne um valor verdadeiro ou falso. Por exemplo: (x == 1), ou (y < 10)

for (A; B; C) { ... }

- No A você usa um comando de atribuição. Esse comando vai servir pra inicializar uma variável. Geralmente é utilizado pra definir a variável inicial do seu loop. Esse comando será executado apenas UMA VEZ, no início do primeiro loop.

- No B você usa uma expressão lógica. No início de cada loop essa expressão será testada. Enquanto ela for verdadeira, o loop continua funcionando. Quando ela for falsa o programa sai do FOR.

- No C você usa um comando de incremento (bem, tecnicamente você pode usar qualquer comando de atribuição, mas a lógica é usar um de incremento, pro loop fazer sentido). Sempre no FINAL de cada loop esse comando será executado.

Então, por exemplo:

for (x=0; x < 10; x++) { <comandos> }

. No começo do loop, o FOR executa o comando:

x = 0;

. Logo em seguida ele testa se:

(x < 10)

. Se a expressão for verdadeira (x menor que 10), ele executa <comandos>

. Ao terminar de executar os comandos, o programa executa o incremento:

x++;

Ou seja, é como se o FOR equivalesse a isso:

x = 0;while (x < 10) {    <comandos>    x++;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include<stdio.h>

int main ()

{

int base, pot, valor, i;

i = 0;

valor = 0;

printf("insira o valor da base. \n" );

scanf("%d", &base);

printf("insira o valor da potencia \n");

scanf("%d", &pot);

while (i <= pot)

{

valor = base*base;

i++;

printf("O exponencial do numero e:%d", valor);

break;

}

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

-Você faz infinitamente valor=base*base. Isso sempre será base².

Ao invés disso faça valor=valor*base ou valor*=base. Não esqueça de inicializar valor=1 para o resto do cálculo dar certo.

-colocando printf() dentro do laço você vai repetí-lo a cada iteração, o que não é o que você quer. tire o printf() para logo depois de }

-break significa: interrompa o laço imediatamente e continue a excecução depois do }. Serve para casos em que existem duas lógicas controlando o laço: a "mestre" que vai avançando valor a valor e a "exceção", que, se acontecer, interrompe o laço na hora. Por esse motivo o break vem dentro de um if() (por questão de lógica):

while(condição){    comandos    if(aconteceu exceção)        break;}

O outro devio de execução é o "continue" que pula os comandos que vem em seguida e avança direto para a condição (pula 1 iteração);

while(condição){    if(aconteceu exceção)        continue;    comandos}

no caso de for(1º;2º;3º) ele pula para o 3º e depois vai para o 2º e continua a execução (ou interrompe de vez, dependendo do resultado do 2º).

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu pessoal consegui resolver pelo while ainda falta modificar para receber potência negativa,

#include<stdio.h>

int main ()

{

int base, pot, i;

float valor;

i = 0;

valor = 1;

printf("insira o valor da base. \n" );

scanf("%d", &base);

printf("insira o valor da potencia \n");

scanf("%d", &pot);

while (i < pot)

{

valor = valor*base;

i++;

}

printf("O exponencial do numero e:%f", valor);

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal estou com dúvida sobre este exercício abaixo, não sei como fazer a comparação para mostra o maior dos n numero.

4. Crie um programa que leia um número n da entrada e depois leia outros n números inteiros e positivos. O maior dos n números lidos deverá ser impresso ao fim do programa. Use a instrução for.

#include<stdio.h>

int main ()

{

int valor, i, num;

printf("insira a quantidade de valores desejada. \n" );

scanf("%d", &valor);

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

{

printf("insira um numero \n");

scanf("%d", &num);

}

if( num > ?);

printf("O numero maior e:%d", num);

return 0;

}

Como fazer esta comparação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ninguém sabe como fazer este tipo de comparação. :(

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!