Ir ao conteúdo
  • Cadastre-se

Ansi C

Membro Pleno
  • Posts

    3.301
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. Se o objeto não é encontrado retorna se null então não há o que imprimir. Outra coisa curiosa; o loop de contador aux não parece está sendo usando já que int ps da função é sempre null.
  2. Entendi que você precisa percorrer o matriz vet; Supondo eu que, i seja o numero total de elemento na matriz vet então: int sub = 0;while( sub < i ) { if(strcmpi(avl->reg.Info.placa, vet[sub]) == 0) { ... {sub++;}
  3. entrada >> estacao >> ano >> mes >> dia >> chuva; Cara não sei ainda como funciona em c++, porém meu palpite é que neste trecho está o problema de acesso violado a memoria protegido. Pois se fosse em C seria escrito com o & na frente por exemplo; entrada >> &estacao >> &ano >> &mes >> &dia >> &chuva; É só um palpite mesmo , já que não escrevo c++ ainda.
  4. Não sou muito bom em explicar, melhor fazendo, observe o código abaixo: //program C - Simple Code <Calculator square by Method Newton>//Author MAURO BRITO//Date: January 05th 2015.#include<stdio.h>#include<conio.h>#include<stdbool.h> // Versão C'99//Prototype//Cal x square value...//parameter: double value xdouble fun_sqare( double );int main( void ){ double num; while( true ) { printf( "Enter a number to square cal? $Number :/> " ); num = 0; scanf( "%lf",&num ); fflush( stdin ); if( num == 0.0 )break; printf( "Answer: = %g\n\n", fun_sqare( num ) ); }printf( "Acabou! [Precione qualquer tecla...]" );getch();return ( 0x0 );}double fun_sqare( double x ){ double y = 1.0; //assignment sempre com 1; double avenger = .0; double inaccurate = .0; //Método de Newton para resolução de raizes quaisquer positivo //x-> y-> x/y-> avenger (y + x/y) /2-> y //9 1 9 5 //9 6 1.5 3.75 //... while( true ){ avenger = ( y + (x /y) ) /2; y = avenger; if( avenger == (x /y) || inaccurate == avenger )break; inaccurate = avenger; }return y;}
  5. Lembro que resolvi esse exercício usando o MÉTODO DE NEWTON. Usei ele na escola até hoje ainda uso.
  6. a respeito do scanf e verdade. Por exemplo; tem o bug da enter ( o scanf posterior tenta capturar o buffer )! Esse bug acontece quando existe no trabalho sequência de scanf, daí e só usar fflush(stdin); Depois de cada scanf. Experimente essa iniciativa na correção do erro presente no teu código. Exemplo: //Software of example - simple_code.c#include <stdio.h>//#Function Prototype//Here this prime functionint main( void ){ int num0, num1;//>Example printf( "Entre com um numero:\n$ Into /> " ); scanf( "%d", &num0 ); fflush( stdin ); printf( "Entre novamente com outro:\n$ Into /> " ); scanf( "%d", &num1 ); fflush( stdin ); printf( "Somar: %d + %d: = %d\n", num0, num1, num0 + num1 ); printf( "Acabou!\nPrecione-> [ENTER] para sair...\r" ); getchar( ); return ( 0 );}
  7. Eu tenho quase certeza que a scanf é o problema.
  8. Ansi C

    Função system()

    existe um limite atribuído pelo sistema operacional; Que tá no máximo de 8191 caracteres; Sabemos que cada caractere ocupa 1byte então é o máximo de 8191bytes; Tente esta alternativa que foi dita pelo suporte da Microsoft; ArquivoExecutável.exe c:\temp\ArquivoDeParâmetro.txt Neste exemplo você usa um arquivo para armazena a linha de comando.
  9. Entendi o seu problema, porém não sei explicar como fazer passo a passo; Então examine o trabalho abaixo e faça qualquer pergunta se precisar: // Simples Code - simple_code.c#include <stdio.h>#define X 20#define Y 30//#Function Prototypeint add( int, int );//+int CalculatorNumbersArithmetic( int, int, int(*)(int,int)/*Ponteiro de função*/ );//Here this prime functionint main( void ){ int (*Calc)( int, int, int(*)(int,int) );//Ponteiro de Função Calc = CalculatorNumbersArithmetic; printf( "Calcule: %d + %d\n", X, Y ); printf( "Resposta: %d\n\n", Calc(X,Y,add) );printf( "Acabou\nPrecione->[ENTER] para sair..." );getchar();return ( 0 );}//#Prototype Defint CalculatorNumbersArithmetic( int x, int y, int(*Oper)(int,int) ){return(Oper(x,y));}int add( int n1, int n2 ){ int sum; sum = n1 + n2;return sum;}
  10. O que você que e retomar através de uma função o ponteiro de outra? E também passar função por parâmetro?
  11. Ansi C

    Retorno de programa

    É isso, em resumo; A função main do programa retorna o dado necessário para o programa que a chamou através de system().
  12. Em C, eu faço assim: // Simples Code - simple_code.c#include <stdio.h>int func1(int n);void func2( int(*)(int) );//C Programint main(){ void (*f2)(int(*)(int) ); f2 = func2;return ( 0 );}
  13. Ansi C

    Retorno de programa

    Se no sistema windows, você pode por exemplo usar a função system( ) da livraria <stdlib> assim; Primeira programa: simple_code.c #include <stdio.h>//C Program - 1stint main(){ printf( "Return main() <-\n");return 3;} Segundo programa[ o que receberá o dado ]; #include <stdio.h>#include <stdlib.h>//C Program - 2ndint main(){ printf( "Return system one <- %d <-\n", system( "simple_code" ) );return 0;}
  14. Sou entusiasta de C, inclusive acho que C é melhor que C++. [emoji6] Se tiveres tempo se aprofunde mais.
  15. %d |> chame se string de formatação é um de muitos. Esse transcreve um sequência de char numéricos em um inteiro (int).<br /> & |> e comercial, dar passa o acesso, ou, local da celula de memória para leitura e gravação.<br /> * |> junto a uma variável diz que a mesma é um ponteiro (c type point).
  16. Se você já implementou a função que faz transcrição de char para aritmética, já fez tudo, já que o resto se encontra pronto dentro da linguagem. Caso não o trabalho se resume na primeira parte uma simples calculadora.
  17. Uma das possíveis maneira de resolver o primeiro é com fiz abaixo; // Program C'11 - for_code.c#include <stdio.h>int CalMMC( int m, int n );int main( void ){ int m = 15; int n = 9; printf( "Software 1.0\n" ); printf( "------------\n" ); printf( "Qual o MMC?\n"); printf( "------------------------------------------------\n" ); while( printf( "Entre com 2 numeros inteiro (# pra sair): " ) ){ if( scanf( "%d", &m ) != 1 || m == 0)break; if( scanf( " %d",&n ) != 1 || n == 0)break; if( m < 0 )m = -m; if( n < 0 )n = -n; printf( "MMC(%dx%d)\n", m,n ); printf( " :%3d\n", CalMMC( m,n) ); }fflush( stdin );printf( "Pronto!\nTECLE -> [Qualquer coisa...]\n" );getchar( );return 0;}int CalMMC( int m, int n){ int coef = 2; int mmc = 1; while( m + n != 2 ){ if( !(m % coef) || !(n % coef) ){ mmc = coef * mmc; if( !(m % coef) ) m /= coef; if( !(n % coef) ) n /= coef; printf( "%3d,%3d|%3d\n", m,n, coef ); }else coef++; }return mmc;}
  18. Ou então, essa versão que fiz para um exercício: // mauro - Program C'11 - for_code.c#include <stdio.h>char *PegaStrings( int tam, char Vetor[tam] );int main( void ){ char name[21]; printf( "-------------------------\n" ); printf( "Qual o seu Nome?\n$Name> " ); if( PegaStrings( 21, name )!= NULL ){ printf( "-------------------------\n" ); printf( "%s! nome interessante,\ne bonito tambem!!!\n", name ); }else printf( "Acabou!\n" );return ( 0 );}char *PegaStrings( int tam, char Vetor[tam] ){ char *strings = NULL; strings = fgets( Vetor, tam, stdin ); if( strings == NULL )return NULL; int index; for( index = 0; index < tam; index++ ){ if( strings[ index ]== '\n' ){ strings[ index ]= '\0'; break; } } if( index == tam ) while( getchar() != '\n' ) continue;return Vetor;}
  19. Sei fazer isso com matriz; char Name[ 2 ][ 21 ];
  20. Mesmo com um vetor que relembre-nos os números já declarados, somente isso, não é possível de impedir que o declaremos novamente; Visualize: 1* Jogador Diz: 21 [ enter ]; ERRO: Vetor < 21 não é o numero secreto; 1* Jogador Diz: 21 [ enter ]; << Oras!! Já havia digitado isso antes; ERRO: Vetor <21> já existe; Porém nada impediu 1* jogador de teclar; 21 e enter; Acho que [enter] deve ser ignorado caso o numero já exista, pode ficar ainda mais interessante porém mais complicado, ignorar o enter e apagar o input já vai ficar legal.
  21. Quando eu quero gravar nomes, faço assim: // Program C'11 - for_code.c#include <stdio.h>int main( void ){ char Name[ 21 ] = { 0 }; //Inicializa todos com \0(zero); printf( "-----------------------\n" ); printf( "Qual o seu nome?\n$Name> " ); scanf( "%20[^\n]", Name ); printf( "-----------------------\n" ); printf( "Seu nome %s\nQue bonito nome!\n\n", Name ); return ( 0 );}
  22. Você precisa aprender quais são as partes que compõem a instancia loop IF. // Simples exemplo de uso da estrutura for for_code.c#include <stdio.h>//Declaração de Protótiposint seq_cont( int lim );int main( void ){ seq_cont( 13 );return ( 0 );}//Definições de Protótiposint seq_cont( int contador ){ const int TAM = contador; const char *msg = "contador: = %3d\n"; for( contador = 0; contador <= TAM; contador++ ){ printf( msg, contador ); } printf( "Acabou!!!\n\n" );return 0;}
  23. Ele usa o portátil do Mingw do GCC (GNU Compiler Collection) atualmente, tu estais usando a versão 4.8.1 64bits dele (esta escrito no topo da imagem). Notei que há chamada da biblioteca conio, esta tem muitas das suas funções pré-C'11 removidas após a reforma. Assim estou sabendo. Então por exemplo; a função -> void gotoxy( int _x, int _y );<- teve seu protótipo removido.Se existe a versão pré-C'11 disponível eu não sei, e não pesquisei também. O que sei atualmente é que metade das funções ficaram disponíveis.
  24. int numero; while( scanf( "%d", &numero ) != 1 ){ printf( "Digite um numero valido como por exemplo:\n" ); printf( "3, 56.2; Tente novamente $numero> " ); fflush( stdin ); }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!