Ir ao conteúdo
  • Cadastre-se
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

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

  • 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

@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;
}

 

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

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

×