-
Posts
3 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Shiftz
-
-
9 horas atrás, devair1010 disse:
@Shiftz para imprimir apenas as entradas que foram pedidas seria melhor usar um vetor de char com as 26 posições correspondente as 26 letras , assim usando um laço de repetição indo de zero até a quantidade de entradas pedidas para imprimir as entradas , então seu código pode ser assim :
#include <stdio.h> #include <math.h> #include <iso646.h> #include <stdlib.h> int main(void){ int entrada; char vet[26]; int qnt,j; /*// quantidade de variáveis*/ printf("Digite a quantidade de entrada para sua tabela\n"); scanf ("%d", &qnt); printf ("%d\n" , qnt); printf(" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n"); /*// 2^n - quantidade de linhas da tabela*/ for(entrada = 0; entrada < (pow(2,qnt)); entrada++) { vet[0 ] = (entrada & 1 )?1:0; /* // x ? a:b <=> if(x) a; else b;*/ vet[1 ] = (entrada & 2 )?1:0; /* // inline if*/ vet[2 ] = (entrada & 4 )?1:0; vet[3 ] = (entrada & 8 )?1:0; vet[4 ] = (entrada & 16 )?1:0; vet[5 ] = (entrada & 32 )?1:0; vet[6 ] = (entrada & 64 )?1:0; vet[7 ] = (entrada & 128 )?1:0; vet[8 ] = (entrada & 256 )?1:0; vet[9 ] = (entrada & 512 )?1:0; vet[10] = (entrada & 1024 )?1:0; vet[11] = (entrada & 2048 )?1:0; vet[12] = (entrada & 4096 )?1:0; vet[13] = (entrada & 8192 )?1:0; vet[14] = (entrada & 16384 )?1:0; vet[15] = (entrada & 32768 )?1:0; vet[16] = (entrada & 65536 )?1:0; vet[17] = (entrada & 131072 )?1:0; vet[18] = (entrada & 262144 )?1:0; vet[19] = (entrada & 524288 )?1:0; vet[20] = (entrada & 1048576 )?1:0; vet[21] = (entrada & 2097152 )?1:0; vet[22] = (entrada & 4194304 )?1:0; vet[23] = (entrada & 8388608 )?1:0; vet[24] = (entrada & 16777216)?1:0; vet[25] = (entrada & 33554432)?1:0; printf(" "); for(j=0;j<qnt;j++){ printf("%d ",vet[j]); } printf("\n"); } getchar(); return 0; }
Era isso mesmo que eu queria, muito obrigado, aproveitando a oportunidade de me aproveitar um pouco hehe teria como fazer o printf imprimir apenas as letras que vão ser usadas, ex: eu peço 3 entradas ele vai imprimir as letras A B C e fazer a tabela, estou aprendendo ainda c++ desculpe a burrice x.x
- 1
-
Boa tarde, estou precisando de uma ajuda para criar uma tabela verdade, preciso que o usuario digite quantas entradas serão usadas e então será imprimido as entradas e será feito a tabela até as entradas estarem com todos valores em 1, EX: A B
0 0
1 0
0 11 1
eu tenho a tabela assim no momento, porém só consegui fazer criando todas as entradas e quando imprimo ele aparece todas mesmo que não sejam utilizadas.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int entrada;
char A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z; // variáveis de entrada
int qnt; // quantidade de variáveis
printf("Digite a quantidade de entrada para sua tabela\n");
scanf ("%d", &qnt);
printf ("%d\n" , qnt);
printf(" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n");
// 2^n - quantidade de linhas da tabela
for(entrada = 0; entrada < (pow(2, qnt)); entrada++) {
A = (entrada & 1)?1:0; // x ? a:b <=> if(x) a; else b;
B = (entrada & 2)?1:0; // inline if
C = (entrada & 4)?1:0;
D = (entrada & 8)?1:0;
E = (entrada & 16)?1:0;
F = (entrada & 32)?1:0;
G = (entrada & 64)?1:0;
H = (entrada & 128)?1:0;
I = (entrada & 256)?1:0;
J = (entrada & 512)?1:0;
K = (entrada & 1024)?1:0;
L = (entrada & 2048)?1:0;
M = (entrada & 4096)?1:0;
N = (entrada & 8192)?1:0;
O = (entrada & 16384)?1:0;
P = (entrada & 32768)?1:0;
Q = (entrada & 65536)?1:0;
R = (entrada & 131072)?1:0;
S = (entrada & 262144)?1:0;
T = (entrada & 524288)?1:0;
U = (entrada & 1048576)?1:0;
V = (entrada & 2097152)?1:0;
W = (entrada & 4194304)?1:0;
X = (entrada & 8388608)?1:0;
Y = (entrada & 16777216)?1:0;
Z = (entrada & 33554432)?1:0;
printf(" %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z);
}
getchar();
return 0;
}Só posso utilizar as bibliotecas <stdio.h> <stdlib.h> <math.h> <iso646.h> para criar a tabela
- 1
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 tabela verdade com quantidade "X" de entrada
em C/C#/C++
Postado
Obrigado pela ajuda era exatamente o que precisava, agora com isso posso fazer mais algumas coisas que tinha em mente hehe, valeu!