Ir ao conteúdo

Ansi C

Membro Pleno
  • Posts

    3.284
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. Está capturando o nova linha [ENTER] para solucionar tente colocar este código antes do scanf( ); while(getchar() != '\n'){} @Paulo Moraes da Silva
  2. @cezarvaz na definição da função corrige colocando: double (*arr)[linha][coluna] = (static_cast<double (*)[linha][coluna]>(lista)); no lugar deste: int (*arr)[linha][coluna] = (static_cast<int (*)[linha][coluna]>(lista));
  3. Estes erros -0.000000 é por que você ainda não trocou os int por double
  4. É por que não é um projeto, daí o IDE está compilando individualmente, Você tem que criar um projeto com os arquivos, ou compilar por linha de comando.
  5. @cezarvaz
  6. C++ File: click no link
  7. Outra coisa, este Dev C++ não é o melhor IDE Recomendo o Code Block que é o melhor, se você for bem inciante recomendo um online, ou desative o auto completar. Assim você vai aprender bem mais. Aproposito já ia esquecendo este erro @win16 é por que o arquivo código não tem função main() naturalmente por que calc.c é a implementação/ rotina/ ou ainda tarefa. Compile como indiquei acima que o app vai funcionar.
  8. @cezarvaz kkkkkkkkkk acontece o seguinte: Onde tem assim no arquivo calc.cpp: int (*arr)[linha][coluna] = (static_cast<int (*)[linha][coluna]>(lista)); Coloque double nos int assim: double (*arr)[linha][coluna] = (static_cast<double (*)[linha][coluna]>(lista)); veja que a conversão de dados é do genérico (void) para tipo primitivo double no arquivo que postei eu fiz para int, substitua para double. execute o comando abaixo para compilar os arquivos C++ onde cd é o caminho para os arquivos promapt: cd>mingw32-g++ main.cpp calc.cpp -o main.exe
  9. @cezarvaz Não sei dizer o porque, eu copilei direto pelo prompt; Vou estudar o erro aqui
  10. Boa dia todos; Revisando este problema; Correu-me que para solucionar este e quais quer outros erros de precisão basta usar tipo primitivo double: #include <stdio.h> int main(void) { double isDouble = 9.0 / 10; printf("E double? %.8f,Agora e float:? %.8f\n\n", isDouble,(float)isDouble); return (0x0); } sh-4.3$ gcc -o main *.c sh-4.3$ main E double? 0.90000000,Agora e float:? 0.89999998
  11. @cezarvaz Prontinho! C'11 File: Matriz e Header.zip C++ File: Matrizes e Headers.zip @cezarvaz O C++ file só é diferente na implementação de calc.cpp, A função de Output (que gera os textos no prompt) também são comuns em C, C++: o printf( "" );
  12. Claro que sim, Maior parte já esta feito, pode dormir tranquilo.
  13. Boa Noite Em C, este protótipo ficaria assim veja um exemplo: void fnArray(int row, int col, int Arr[row][col]); No seu caso assim: void calc (int linha, int coluna, void* lista); Teste em C++, pois em C eu garanto que funciona.
  14. Para copilar abra um novo projeto no Code::Blocks (Recomendo) Ou través do comando: >square> gcc main.c square.c -o square.o Para windows comando>square> gcc main.c square.c -o square.exe kkkk sim, mas taria te dando a resposta, tentei ensinar um pouco do que sei, se não consegui então a resposta também não vou dar kkk
  15. Como poucas mudanças, você pode adaptar para qualquer tipo de objeto. Por exemplo: extern int Data; pode virar extern int Data[3][3]; mesmo para int Data e para resolver os quadrados, um loop percorrendo o ponteiro por exemplo: for(i = 0; i < 9; i++) *(n + i) = *(n + i) * (*(n + i)); Resolve, já que se associamos o ponteiro de um matriz a um ponteiro pode percorre como vetor.
  16. Boa tarde @cezarvaz Em C, usamos *.c para arquivos de código, e usamos *.h para aquivos de cabeçarios. Já no C++ usa se *.cpp para arquivos de código, e usas e *.hpp para arquivos de cabeçario. Então como exemplo disto em C tenho: Arquivo square.h (header) /** @file square.h @author Mauro Britivaldo @date 13 de Jul 2017 */ #ifndef SQUARTE_H_INCLUDED #define SQUARTE_H_INCLUDED extern int Data; /**< Link externo para o número **/ /** @brief Função elava número inteiro ao quadrado @param Número interio com valor maior que 1 @return Número quadrado */ void fnSquare(int* iNumeroInteiro); #endif // SQUARTE_H_INCLUDED Arquivo Código (*.c) de implementar square.h /** @file square.c implementação *.h @date 7/13/2016 */ int Data; /**< Valor anterior a potencia */ /** @brief Função elava número inteiro ao quadrado definição da função declarada no arquivo *.c */ void fnSquare(int* n) { Data = *n; // Atribuindo o valor antes da potência *n = (*n) * (*n); return; } Arquivo main.c usando função fnSquare #include <stdio.h> #include "square.h" // fnSquare int main() { int iNumber; printf( "Entre com numero inteiro: " ); scanf( "%d", &iNumber ); fnSquarte(&iNumber); // Fazendo a potencia de 2. printf("%d^2 e igual: %d\nDone\n\n", Data, iNumber ); return 0; }
  17. O exercício eu entendi agora com certeza, problema é que não sei escrever um exemplo em C++;
  18. Boa tarde todos, Retomei o meu hobby, estou aprendendo C; o arquivo H (terminação .h) deve conter apenas declarações ou até mesmo variáveis, algumas externas (apontam pra fora do escopo). Em C, a implementação de H file fica C file ou O file de mesmo nome. Por exemplo: hello.h que só tem nomes para programar, como se fosse um guia de ferramentas disponíveis, já em hello.c ou hello.o tem todas as rotinas ocultas no caso de hello.o principalmente. Resumindo: hello.h - é um monte de nomes sem nada, um mapa. hello.c ou hello.o - é onde está a implementação/ rotinas/ tarefas/ programa. Entendi que a função calc não está fazendo tarefa nenhum... porém a tarefa pouco importa você quer usar uma função que esteja fora do escopo do arquivo atual, de maneira oculta, sem visualizar sua implementação, é sobre isso o exercício?
  19. @Junior bilaki Boa Entendi, você precisa deixar a declaração IF dentro do bloco FOR assim: for(x=0; x<5; x++) { printf ("\nVETOR %d = %d\n",x, vetor[x]) if((vetor[x]%3) == 0) //Não é divisão é o modulo [%] { soma = vetor[x] + 1; printf("\nNumero divisivel por 3 e %d:\n",vetor[x]); } }
  20. printf("\nNumero divisivel por 3 e %d:\n",vetor[x]); Bom dia, A declaração acima que x posicionou vetor numa célula atribuída o valor que é múltiplo de 3, é meia-verdade pois não existe nada acima desta declaração que garante. O que você quis fazer?
  21. Boa tarde; Se eu bem entendi Y é maior que X onde Y tendendo a x será igual a x Y > x <- Y, x = Y algoritmo: NumerosDecrecentes inicio escreva("digite o maior numero: ") leia(Y) escreva("digite o menor numero: ") leia(x) enquanto Y >= x faça escreva(""y"") Y = Y - 1 fimEnqunto fim '-' tendi isso!
  22. Bom dia @Sérgio Manoel ! Esta questão é daquelas em que a resposta parece obvia; Uma casquinha de banana esperando por você e daí tu escorregasse direitinho. Sim, o indexador (neste caso a variável i) pode exceder o número de espaços reservado pelo vetor; A este fenômeno, se dar o apelido em inglês "Over bound". E apenas por implementação é possível garantir que "Over Bound" não aconteça. Para implementação da questão, posso dizer que: ( i = 1; i<=10; i++) <-> i vai assumir := os valores menores que 10 e igual 10, implica dizer que vai acontecer uma última repetição quando i := 10, quando i := 11, ela não mais satisfará a condição de existência e o laço FOR fecha com valor 11.
  23. armazena o resultado da multiplicação por 100 numa variável int Soma 1 ao resultado e depois divide por 100
  24. Mais do jeito que está, não vejo como scanf capturar um float; Para scanf("%d", &i); só entra int para i

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!