Jump to content

William Minerva

Members
  • Posts

    6
  • Joined

  • Last visited

  • Days Won

    2

William Minerva last won the day on March 7 2022

William Minerva had the most liked content!

William Minerva's Achievements

3

Reputation

  1. Descobri a solução para o problema, para remover a limitação do scanf() para leitura de espaços, basta apenas usar "scanf(" %[^\n]", s);"
  2. Oi gente, bom dia, tudo bem? Eu preciso fazer um programa que leia uma frase e que em seguida cada letra do texto seja substituída por outra fazendo uma troca de 3 posições. Por exemplo: a letra A vira letra D, a letra B vira letra E e assim por diante. O problema é que o programa que eu construí ela lê apenas uma palavra mas não lê o resto que eu escrevo. Por exemplo: quando eu escrevo a palavra "CACHORRO CANSADO" o programa lê apenas a palavra "CACHORRO" e me retorna "FDFKRUUR" mas não lê a palavra "CANSADO", o programa considera apenas a primeira palavra que eu escrevo, por que isso está acontecendo? Como posso resolver esse problema? Eu escrevi o programa da seguinte forma: #include <stdio.h> #include <string.h> void cifrar( char * saida, const char * entrada, int chave ) { int i = 0; int tam = strlen(entrada); for( i = 0; i <= tam; i++ ) { if( (entrada[i] >= 'a') && (entrada[i] <= 'z') ) { saida[i] = (((entrada[i] - 'a') + chave) % 26) + 'a'; } else if( (entrada[i] >= 'A') && (entrada[i] <= 'Z') ) { saida[i] = (((entrada[i] - 'A') + chave) % 26) + 'A'; } else { saida[i] = entrada[i]; } } } void decifrar( char * saida, const char * entrada, int chave ) { int ch = 0; int i = 0; int tam = strlen(entrada); for( i = 0; i <= tam; i++ ) { if( (entrada[i] >= 'a') && (entrada[i] <= 'z') ) { ch = (entrada[i] - 'a') - chave; if( ch < 0 ) ch += 26; saida[i] = ch + 'a'; } else if( (entrada[i] >= 'A') && (entrada[i] <= 'Z') ) { ch = (entrada[i] - 'A') - chave; if( ch < 0 ) ch += 26; saida[i] = ch + 'A'; } else { saida[i] = entrada[i]; } } } int main( int argc, char * argv[] ) { char original[100]; scanf("%s", original); char cifrado[100]; cifrar( cifrado, original, 3 ); printf("%s", cifrado); return 0;
  3. Oi gente, tudo bem? Eu estou praticando um exercício de programação que pede para fazer um programa que converta coordenadas polares para coordenadas cartesianas, e então eu fiz da seguinte forma: #include <stdio.h> #include <string.h> #include <math.h> int main() { float r, a; float x, y; scanf("%f %f", &r, &a); x = r * cos(a); y = r * sin(a); printf("%.2f %.2f", x, y); return 0; } Mas o problema é que eu queria escrever esse programa em forma de estruturas (struct), ou seja, criar um TAD para o ponto cartesiano com os campos x e y e um outro TAD para o ponto polar com os campos r e a. Eu estou tentando e não estou conseguindo, como eu faço? Se alguém puder me ajudar ou dar alguma dica eu ficaria agradecido.
  4. Eu escrevi o seguinte programa: #include <stdio.h> #include <stlib.h> int main() { int i, j, det; int matriz[3][3]; for(i=0; i<3; i++) { for(j=0; j<3; j++) { scanf("%d", &matriz[i][j]); } } det = (matriz[0][0]*matriz[1][1]*matriz[2][2]) + (matriz[0][1]*matriz[1][2]*matriz[2][0]) + (matriz[0][2]*matriz[1][0]*matriz[2][1]) - ((matriz[0][1]*matriz[1][0]*matriz[2][2]) + (matriz[0][0]*matriz[1][2]*matriz[2][1]) + (matriz[0][2]*matriz[1][1]*matriz[2][0])); printf("%d", det); return 0; } Mas como eu posso ler as matrizes utilizando os comandos while e do-while?
  5. Construa um programa que calcule o determinante de uma matriz 3x3 usando Regra de Sarrus. (Usando arranjo bidimensional para para representar os dados e um laço duplo para fazer a leitura da matriz).
×
×
  • Create New...