Ir para conteúdo
Fórum Script Brasil

ScreenBlack

Membros
  • Total de itens

    61
  • Registro em

  • Última visita

Tudo que ScreenBlack postou

  1. O sinal de atribuição de valor é "=" e igualdade é "==". Você fez confusão entre elas. int verifica (int num) { int result = 1; if ( num < 0 ) result = 0; if ( num == 0 ) result = -1; return result; } Além disso, na função "soma_entre()", você colocou um ";" no final do "for()". Isso faz com que a variável seja apenas incrementada até "num2-1", depois é que chamará a "soma = resultado[w]+resultado[w];" for( w = num1; w < num2; w++ ) soma = resultado[w]+resultado[w];
  2. O seu professor ensinou C++ antes do C? Que estranho. Mas, vamos lá. Em C++, o "cin", assim como o "cout", fazem parte de uma classe, que é a padrão "std". Em C, não possui classe, pois não é uma linguagem orientada a objetos. Então usamos a função "printf()" e "scanf()" para mostrar na tela e ler conteúdo para o programa. O uso delas é da mesma forma que uma função comum em C++, passando parâmetros. Exemplo: char letra; char palavra[10]; int valor; printf(variavel); // Vai mostrar o conteúdo da variável, independente do tipo. Não é a forma mais adequada de usar essa função. Melhor sempre usar o tipo que será mostrado na tela, como abaixo. printf("O valor é: %c\n", letra); // '%s' quer dizer que será mostrada na tela um conteúdo do tipo CHAR, originado pela "letra". printf("O valor é: %s\n", palavra); // '%s' quer dizer que será mostrada na tela um conteúdo do tipo STRING (que é um vetor de char, com um código terminador em seu final), originado pela "palavra". printf("O valor é: %d\n", valor); ou printf("%i\n", valor); // '%s' quer dizer que será mostrada na tela um conteúdo do tipo INTEIRO, originado pela "valor". scanf("%s", variavel_string); scanf("%d", &variavel_inteiro); // A função "scanf()" requer sempre um ponteiro pra variável (feito pelo uso do '&') que receberá o valor. No caso da string, isso não é necessário, pois o vetor já é um ponteiro. scanf("%c", &letra); // Nesse caso, precisamos do ponteiro, por não se tratar de um vetor, mas sim, uma variável simples do tipo char.
  3. ScreenBlack

    Exercício em C

    A sua rotina de leitura está confusa. Não entendi exatamente o que você pretende fazer no código. Baseado no seu código, modifiquei a rotina de leitura das matrizes e criei uma função que mostra elas na tela. #include <math.h> #include <stdio.h> #include <conio.h> void mostraMatriz(float matriz[4][4]) { int i = 0; int j = 0; printf("Listando Matriz:\n"); for (; i < 4; i++) { for (j = 0; j < 4; j++) printf("%f ", matriz[i][j]); printf("\n\n"); } } /* Programa principal */ int main(void) { int i = 0; int j = 0; float A[4][4]; float B[4][4]; /* Leitura das matrizes (2 matrizes) */ printf(">>programa para leitura de matrizes<<\n\n"); /* Leitura da matriz A */ for ( i = 0; i < 4; i++ ) { for ( j = 0; j < 4; j++ ) { printf("Digite a matriz A. Elemento %d da linha %d: ", j+1, i+1); scanf("%f", &A[i][j]); printf("\n"); } } /* Leitura da matriz B */ for ( i = 0; i < 4; i++ ) { for ( j = 0; j < 4; j++ ) { printf("Digite a matriz B. Elemento %d da linha %d: ", j+1, i+1); scanf("%f", &B[i][j]); printf("\n"); } } mostraMatriz(A); mostraMatriz(B); return 0; } A partir daí, basta fazer o tratamento que você deseja. Espero que ajude.
  4. Mudando apenas o "printf()", assim: for ( i = 0; i < 3; i++ ) { for ( j = 0; j < 3; j++ ) { printf("%4.4d ",matriz[i][j]); esperar(1); /* Espera 1 segundo ate ir para o proximo numero. */ } printf("\n"); }
  5. Se você estiver usando Windows, dá pra usar a função "Beep(freq,tempo)" Exemplo: #include <stdio.h> #include <stdlib.h> #include <windows.h> int main(void) { Beep(300,1000); Beep(400,1000); Beep(500,1000); Beep(600,1000); Beep(700,1000); Beep(800,1000); return 0; }
  6. Você precisa declarar o cabeçalho da função "esperar()" antes da função "main()", caso contrário, o compilador retornará warning. void esperar(int segundos); Os dois "for" estão contando de 0 a 3, ou seja, 4 posições. Troque o "<=" para "<". Caso queira que o "printf()" mostre os números formatados, como foi adicionado na matriz, use o seguinte exemplo: for ( i = 0; i < 3; i++ ) for ( j = 0; j < 3; j++ ) { printf("%4.4d\n", matriz[i][j] ); esperar(1); /* Espera 1 segundo ate ir para o proximo numero. */ }
  7. Encontrei alguns errinhos. Seguem eles: 1) Faltou incluir algumas bibliotes: #include <stdlib.h> #include <conio.h> #include <string.h> 2) A função scanf não precisa do '&' (no seu caso). Corrija para: scanf("%s", valor); 3) Na função "calcula()", a variável 'a' é um ponteiro pra ponteiro, logo, você precisa corrigir o "printf()": printf("Resposta = %s", *a); 4) Sugiro corrigir o cabeçalho da função "main()" e adicionar o "return 0" no final dela. Dependendo do compilador, pode ficar dando mensagens de warning. int main(void) { cria_expressao(); mostra(p); // para mostrar que a expressao foi lida corretamente num = (struct ptr*) NULL; op = num; calcula(); getch(); return 0; } Fazendo essas modificações, seu código funcionou corretamente pra mim.
  8. Se a ordenação da pilha, for utilizando o método pilha, precisará de 2 pilhas auxiliares. É o princípio da torre de hanoi.
  9. garota x O número 9 inteiro não é o mesmo 9 em char. Em char só tem do '0' (código 48 em ASCII) ao '9' (código 57 em ASCII). Dá pra fazer com 3 loops, sendo um para cada casa "decimal". #include <stdio.h> int main(void) { int i, j, k; for ( i = 48; i <= 57; i++ ) for ( j = 48; j <= 57; j++ ) for ( k = 48; k <= 57; k++ ) printf("%c%c%c\n", i, j, k); return 0; } SpotBR O compilador C++, por padrão, sempre faz o type cast, convertendo em char pra mostrar na tela. Isso não ocorre no C, usando as biblitecas padrões.
  10. Pode ser por causa da codificação mesmo. Troque o 'Ç' por 128 e faça o type cast do array, assim: if ( (unsigned char) string[i] == 128 ) { string[i]='S'; } Na tabela ASCII, o código do 'Ç' é 128. Não sei porque, mas quando coloca 'Ç' ao invés do valor, o programa interpreta internamente como sendo 'Ã' que é o valor 199. Usei windows 7 64Bit com CodeBlocks (MinGW) para testes.
  11. ScreenBlack

    Sockets

    Tem um exemplo que criei em C, mas é possível facilmente converter pra C++: Link aqui Ele é bem simples. Atua apenas como cliente. Envia uma string e aguarda a resposta, até o buffer estar vazio, encerrando a conexão.
×
×
  • Criar Novo...