Ir ao conteúdo

Posts recomendados

Postado

eu tenho que criar um programa que mostre: analise combinatória, permutação e arranjo, o programa já está fazendo isso, mas estou querendo fazer algumas mudanças, como por exemplo:

>> Depois que apertar 'S' ou 's', a tela fique limpa e pergunte os valores de N e P novamente.

>> Fazer com que a mensagem de erro fique em negrita ou destacada de alguma forma (lembro a algum tempo que me ensinaram que tinha como deixar tipo um retângulo em volta da mensagem)

 

ps:. fiz um teste colocando números não inteiros, e fica floodando ''erro tente novamente'' infinitamente

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
unsigned long Fatorial(unsigned long n);
int main()
{
long n,p,aux;
long A,C,P;
char op;
system("title Análise Combinatória");
do{
printf("Software que calcula Arranjo, Combinacao e Permutacao\n\n");
do{
printf("Digite o valor de n: ");
scanf("%i",&n);
printf("\nDigite o valor de p: ");
scanf("%i",&p);
if(n<p || p<0)
printf("\nErro!\nTente novamente! \n \n");
} while(n<p || p<0);
 aux = Fatorial(n);
 A = (aux/Fatorial(n-p));   
 C = (Fatorial(n))/(Fatorial(p)*(Fatorial(n-p)));
 P = Fatorial(n);
  printf("\n\nArranjo(%i,%i) = %i\n\n",n,p,A);
  printf("Combinacao(%i,%i) = %i\n\n",n,p,C);
  printf("Permutacao(%i) = %i\n\n",n,P);
  printf("\nNovo calculo ? Responda: (S)/(N): ");
  scanf("%s",&op);  }
  while(op == 'S' || op == 's');
  system("cls");
}
unsigned long Fatorial(unsigned long n){
  if(n==0 || n==1)    return 1;
  return n*Fatorial(n-1);
}

 

  • Amei 1
Postado
#include <stdio.h>
int main() {

   char r;
   printf("voce deseja continuar ? [s/n]\n"); 
   scanf(" %c", &r); 
   if (r=='s'||r=='S'){
	printf ("voce continuou\n");
	return main();
    }
   else {
   if(r=='n'||r=='N'){
   return (0);
	}}
}

 

adicionado 7 minutos depois

para limpar a tela  use o comando system("cls");

  • Curtir 1
Postado

@Klaus Mikaelson       para destacar a mensagem você pode usar a função textcolor ,  se você estiver usando o sistema operacional windows ,  para colorir as letras para que elas fiquem diferente das demais ,  então seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#define cls system("cls");
#define  u GetStdHandle(STD_OUTPUT_HANDLE)
#define gotoxy_2(x,y) {COORD c={x,y};SetConsoleCursorPosition(u,c);}
#define textcolor_2(l,f) SetConsoleTextAttribute(u,l+(f<<4));
unsigned long Fatorial(unsigned long n);
int main(){
    long n,p,aux;
    long A,C,P;
    char op;
    system("title Análise Combinatória");
    do{
        printf("Software que calcula Arranjo, Combinacao e Permutacao\n\n");
        do{
            printf(" Digite o valor de n : ");
            fflush(stdin);
            scanf("%i",&n);
            printf(" Digite o valor de p menor ou igual a n e maior ou igual a 0 : ");
            fflush(stdin);
            scanf("%i",&p);
            if(n<p || p<0){
                textcolor_2(10,12);
                printf("\n Erro . . . ! \n Tente novamente . . . ! \n\n");
                textcolor_2(7,0);
                Sleep(2000);
                cls;
            }
        }while(n<p || p<0);
        aux = Fatorial(n);
        A = (aux/Fatorial(n-p));
        C = (Fatorial(n))/(Fatorial(p)*(Fatorial(n-p)));
        P = Fatorial(n);
        printf("\n\n"                                 );
        printf(" Arranjo   (%2i,%3i) = %7i\n"  ,n,p,A );
        printf(" Combinacao(%2i,%3i) = %7i\n"  ,n,p,C );
        printf(" Permutacao(%2i    ) = %7i\n\n",n,P   );
        printf(" Novo calculo ? Responda: (S)/(N): "  );
        op = (char)getch();
        system("cls");
    }while(toupper( op ) == 'S' );
    system("cls");
    return 0;
}
unsigned long Fatorial(unsigned long n){
    if(n==0 || n==1)    return 1;
    return n*Fatorial(n-1);
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...