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:  
volpatoc

C Onde estou errando nesse programa?

Recommended Posts

queria saber o que está errado e como substituo o for por while nesse programa (posso somente trabalhar com while nesse projeto) (também preciso substituir o if por algum que caiba mais espaços dos digitos)

 

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

main(void){

int a, b;

printf("\n Insira um numero inteiro, menor ou igual a 20: ");
scanf("%d", &a);
printf("\n Digite 1 para somar os impares ou 2 para multiplicar os pares até o numero indicado: ");
scanf("%d", &b);
{
    if (b=1);
}

int i=a;

int soma=0;

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

{
if(i%2!=0)

soma=soma+i;

}

printf("\n O valor da soma dos impares e:\%d", soma);
}

{
    if (b=2);
}
{

int i=a;

int multiplicacao=2;
while (a!=20){
        if(a%2==0){
                multiplicacao *= a;
        }
        ++a;
}
print("multiplicacao dos numeros pares: %i", multiplicação);
system ("pause>null");
return 0;
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

Segue a dica

#include <stdio.h>
#include <iostream>

int main() {
    int length = 5;
    int i = 0;
    printf("Feels the magic =X \n\n");

    for(int i = 0; i < length; i++){
        printf("for[%d]\n",i);
    }

    printf("\n************\n\n");

    while(i < length){
        printf("while[%d]\n",i);
        i++;
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

-main é uma função, por default uma função retorna algo tirando o caso do void, eu colocaria um int tipo: int main () { ...

-tem um print sem f no fim

-system ("pause>null"); -> system("PAUSE");

-onde tem aquele %i coloca um %d

-esse if ta meio diferentão  -> if (b=1); // não vai dar erro mas não faz sentido

- tem uns { } no meio do código que parecem meio sem propósito

- int i=a; -> da ultima vez que você declara o i você nunca mais usa ele

- printf("\n Insira um numero inteiro, menor ou igual a 20: "); -> -1 é menor que 20

- (também preciso substituir o if por algum que caiba mais espaços dos digitos) -> Como assim

Editado por Plástico Bolha
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

está dando erro nos parenteses o que pode ser?

 

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

main(){

int a, b;

printf("\n Insira um numero inteiro, positivo, menor ou igual a 20: ");
scanf("%d", &a);
printf("\n Digite 1 para somar os impares ou 2 para multiplicar os pares até o numero indicado: ");
scanf("%d", &b);
{
    if (b=1);
}

int i=a;

int soma=0;

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

{
if(i%2!=0)

soma=soma+i;

}

printf("\n O valor da soma dos impares e:\%d", soma);
}
{
    if (b=2);
}
{

int i=a;

int multiplicacao=2;
while (a!=20){
        if(a%2==0){
                multiplicacao *= a;
        }
        ++a;
}
printf("multiplicacao dos numeros pares: %d", multiplicacao);
system ("pause");
return 0;
}
 

adicionado 7 minutos depois

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

main(){

int a, b;

printf("\n Insira um numero inteiro, positivo, menor ou igual a 20: ");
scanf("%d", &a);
printf("\n Digite 1 para somar os impares ou 2 para multiplicar os pares até o numero indicado: ");
scanf("%d", &b);
{
    if (b=1);
}

int i=a;

int soma=0;

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

{
if(i%2!=0)

soma=soma+i;

}

printf("\n O valor da soma dos impares e:\%d", soma);
}
{
    if (b=2);
}
{

int i=a;

int multiplicacao=2;
while (a!=20){
        if(a%2==0){
                multiplicacao *= a;
        }
        ++a;
}
printf("multiplicacao dos numeros pares: %d", multiplicacao);
{
    if (b>=3);
    {
        printf("\n Opcao invalida");
            }
}

{
    if (a>20);
    {
        printf ("\n Opcao invalida");
    }
}
{
    if (a<0);
    {
        printf ("\n Opcao invalida");
    }
}
{
    if (b<=0);
    {
        printf ("\n Opcao invalida");
    }
}
system ("pause");
return 0;
}

adicionado 8 minutos depois

@Plástico Bolha

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

@volpatoc     para postar seu código é melhor usar o botão   <>  que está lá na barra de ferramentas da janela de responder, pois sem ele o código fica faltando alguns caracteres .

         para comparações precisa usar dois sinais de igualdade, e você está usando apenas hum , e  essas chaves ali antes e depois dos if's não são assim , e  está dando erro não é no parenteses e sim nas chaves onde não precisa delas , então seu código com algumas modificações ficaria assim :

#include <stdio.h>
#include <stdlib.h>
int main(){
    int a,b,i,soma=0,multiplicacao;
    printf("\n Insira um numero inteiro, positivo, menor ou igual a 20: ");
    scanf("%d",&a);
    printf("\n Digite 1 para somar os impares \n Digite 2 para multiplicar os pares ate o numero indicado: ");
    scanf("%d",&b);
    if((b > 0 && b < 3) &&(a>=0 && a<=20) ){
        if(b==1){
            i=a;/* essa linha aqui não serve para nada */
            soma=0;/* essa linha aqui não serve para nada */
            for(i=0 ; i<=a ; i++){
                if(i%2!=0)
                    soma+=i;
            }
            printf("\n O valor da soma dos impares eh : %d\n\n",soma);
        }
        if(b==2){
            i=a;/* essa linha aqui não serve para nada */
            multiplicacao=2;
            while (a!=20){
                if(a%2==0){
                    multiplicacao *= a;
                }
                a++;
            }
            printf("multiplicacao dos numeros pares: %d\n\n",multiplicacao);
        }
    }
    else
        printf("\n Opcao invalida\n\n");
    system("pause");
    return 0;
}

 

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites

@volpatoc    dentro do for existe um while , veja aqui no comando for 

i<=a 

isso significa enquanto i for menor ou igual  a , ou seja um while

então você inicializa a variável de controle com o valor zero e coloca assim

i=0;
while(i<=a){

    i++;
}

e incrementa a variável i  também como no for para que ela sirva ao propósito e saia do loop

então esse while seria assim :

i=0;
while(i<=a){
    if(i%2!=0)
        soma+=i;
    i++;
}

 

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






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

×