Jump to content

[C++] AJUDA EM CODIGO DE PROJETO


Mdl N

Postagens Recomendadas

Olá, sou novo na parte de programação, estou me divertindo e aprendendo. Fiz um projeto de tabuada, porém sinto que poderia ser melhor e mais clean tbm.

Minha duvida é um errozinho que n sei onde corrigir, na hora da execução mais pra baixo do codigo, ele acaba repetindo a pergunta:

Gostaria de ver um outro numero? (S/N) s
Gostaria de ver um outro numero? (S/N) s

 

qualquer sugestão, ou melhoria, ou como corrigir o código eu estou aceitando! obrigado desde já.

 

segue o codigo q usei:

 

#include <stdio.h>
int main (){
   
float n;
char r;

printf("Informe o numero que gostaria de ver a tabuada: ");
scanf(" %f", &n);

printf("a tabuada(1 a 10) de %.0f e:\n", n);
printf("%.0fx1=%.0f\n%.0fx2=%.0f\n%.0fx3=%.0f\n%.0fx4=%.0f\n%.0fx5=%.0f\n%.0fx6=%.0f\n%.0fx7=%.0f\n%.0fx8=%.0f\n%.0fx9=%.0f\n%.0fx10=%.0f\n\n\n", n,n*1,n,n*2,n,n*3,n,n*4,n,n*5,n,n*6,n,n*7,n,n*8,n,n*9,n,n*10);
printf("Gostaria de ver um outro numero? (S/N) ");
scanf(" %c", &r);

for (r; r != 'S' && r != 's' && r != 'N' && r != 'n';){
    printf("Algo deu errado\n."); 
    printf("Gostaria de ver um outro numero? (S/N) "); 
    scanf(" %c", &r);
}
if (r == 'S' || r == 's'){
    printf("Informe novamente o numero que gostaria de ver a tabuada: ");
    scanf(" %f", &n);
    printf("a tabuada(1 a 10) de %.0f e:\n", n);
    printf("%.0fx1=%.0f\n%.0fx2=%.0f\n%.0fx3=%.0f\n%.0fx4=%.0f\n%.0fx5=%.0f\n%.0fx6=%.0f\n%.0fx7=%.0f\n%.0fx8=%.0f\n%.0fx9=%.0f\n%.0fx10=%.0f\n\n\n", n,n*1,n,n*2,n,n*3,n,n*4,n,n*5,n,n*6,n,n*7,n,n*8,n,n*9,n,n*10);
    printf("Gostaria de ver um outro numero? (S/N) "); 
    scanf(" %c", &r);
}

for (r; r == 'S' || r == 's';){
    printf("Informe novamente o numero que gostaria de ver a tabuada: ");
    scanf(" %f", &n);
    printf("a tabuada(1 a 10) de %.0f e:\n", n);
    printf("%.0fx1=%.0f\n%.0fx2=%.0f\n%.0fx3=%.0f\n%.0fx4=%.0f\n%.0fx5=%.0f\n%.0fx6=%.0f\n%.0fx7=%.0f\n%.0fx8=%.0f\n%.0fx9=%.0f\n%.0fx10=%.0f\n\n\n", n,n*1,n,n*2,n,n*3,n,n*4,n,n*5,n,n*6,n,n*7,n,n*8,n,n*9,n,n*10);
    printf("Gostaria de ver um outro numero? (S/N) "); 
    scanf(" %c", &r);
    
    if (r != 'S' && r != 's' && r != 'N' && r != 'n')
    printf("Algo deu errado\n."); 
    printf("Gostaria de ver um outro numero? (S/N) "); 
    scanf(" %c", &r);
    
}
    
for (r; r != 'S' && r != 's' && r != 'N' && r != 'n';){
    printf("Algo deu errado\n."); 
    printf("Gostaria de ver um outro numero? (S/N) "); 
    scanf(" %c", &r);
}

if (r == 'N' || r == 'n') {

    printf("Ok! entendido.");
 }
 
    return 0;
}

Link to comment
Compartilhe em outros sites

Consegui remover a duplicação, ficando do jeito q eu quero, q é infinito enquanto eu responder "S" porém nos últimos códigos que acontece a pergunta "Gostaria de ver um outro numero? (S/N)" se eu colocar por exemplo "h" em vez do "S" ou "N"  ele me informa o  seguinte:

Gostaria de ver um outro numero? (S/N) h
Algo deu errado
.Gostaria de ver um outro numero? (S/N) s

--------------------------------

o programa se encerra, como faço pra continuar sendo infinito sem ter q ficar repetindo o mesmo codigo?

Editado por Mdl N
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora
  • Quem está online   0 Membros, 0 Anônimos, 24 Visitantes (Ver lista completa)

    • There are no registered users currently online


×
×
  • Create New...