Ir ao conteúdo

Ansi C

Membro Pleno
  • Posts

    3.284
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. @Anderson Luis Mattiola ah sei não, lamento não poder ajudar mais.
  2. Teste e compra com o código abaixo: #include <stdio.h> #include <string.h> struct doceira { char tipo[ 20 ], marca[ 20 ], dietetico; float preco, soma; }; int main ( void ) { struct doceira doc[ 2 ]; int i; int soma = 0; for ( i = 0; i < 2; i++ ) { printf( "\nInforme o tipo de doce: " ); fgets( doc[ i ].tipo,20,stdin ); printf( "Informe seu preco: " ); scanf( "%f",&doc[ i ].preco ); fflush( stdin ); printf( "Informe sua marca: " ); fgets( doc[ i ].marca,20,stdin ); fflush( stdin ); printf( "Informe se é dietetico: " ); char chChoose = '\0'; while( (chChoose = getchar()) != 's' && chChoose != 'n' ) printf( "\rEntre s- Sim, n- Nao: " ); while( '\n' != getchar() )continue; doc[ i ].dietetico = chChoose; if ( doc[ i ].dietetico == 's' ) { soma = soma + 1; } } printf ( "Quantidade dieteticos: %d",soma ); return 0; }
  3. Por meio da CodigoPessoa você já estabeleceu a chave direta entre as digamos tabelas, o que estou vendo é a necessidade de um tabela (arquivo) família ou mais uma chave (variável) que identifique os membros familiares, ou simplificando dentro do CodigoPessoa onde os 3 primeiros dígitos ou os últimos identificaram os muitos membros da mesma família. Se bem entendi é isto -.-'
  4. Já vi uma postagem parecido aqui mesmo No código estas a usar scanf de maneira errada. Referência para estudo da função scanf cplusplus::cstdio::scanf
  5. Ao meu ver, pelo mesmíssimo motivo, contudo ainda o char ocupa menos espaço na memoria em relação int o que é útil para magnitudes inferiores por exemplo o peso, e altura de uma pessoa pois são grandezas positivas e magnitudes pequenas e.i como contador de um declaração LOOP: //Variável unsigned char (1 byte / 8 bits limitada de 255 representações) //Como pode bem observar no exemplo se o programador usar int será um des- //perdicio de memória, 3 bytes exatamente, char é versão menor de int. unsigned char index, studentsWeight[ 0xA ]; //Loop para preenchimento de valor padrão for( index = 0x0; index < 0xA; index++ ) studentsWeight[ index ] = 0x46;//Kg for default. //Done! Importante questão de memória que na data em que a linguagem foi criada era fator determinante, e hoje ainda é, pelo menos os grandes programmers dizem por aí que sim.
  6. Eu acho que resolvi #include <stdio.h> int main( void ) { int i,j,k,x; i = j = k = x = 0x0; ///Sempre iniciar as variáveis. int A[ 0x4 ] = { 0x0 }; /// int B[ 0x4 ] = { 0x0 }; /// int aux = 0x0; //#1 FOR for( i = 0x0; i < 0x4; i++ ) { printf( "enter a number: " ); scanf( "%d",&A[ i ] ); B[ i ] = A[ i ]; //#2 FOR for( aux = j = 0x0; j <= i; j )///i é o limite, é o número de entradas, { /// if( aux != j && B[ j ] == B[ aux ] )///aux != j garante a não auto comparação, { /// printf ("number %d is repeated, type other: ", B[ j ] ); printf("Aux := %d ", aux ); scanf( "%d", &B[ j ] ), aux = j = 0x0; ///Este atributo garante a re-consulta } if( aux++ == i )aux = 0, j++;///O mesmo elemento x vai ser consultado todo vetor i-elementos. /// j <= i Vezes por exemplo se tem 3 elementos haverá 9 loops }//2# FOR END } ///#1 FOR END aninhando o #2 ///Exibir vetor resultante for( i = 0x0; i < 0x4; i++ ) printf("%d ", B[ i ] ); system("pause"); return( 0x0 ); }
  7. Vou baixar o IDE aqui também! Só 1 minutinho! adicionado 38 minutos depois Estava pensando em algo assim, Desculpe a demora... >< inicio constante inteiro BASE <- 1 //BASE é a quantidade de alunos texto txtNomeAluno[ BASE ] inteiro intMatriculaAluno[ BASE ] real rlMediaFinal[ BASE ] real rlMediaAtualizada[ BASE ] inteiro contador <- 0 enquanto contador < BASE faz escrever "Entre com a maticula$ " ler intMatriculaAluno[ contador ] escrever "Entre com Média Final$ " ler rlMediaFinal[ contador ] //Atualização da Média se rlMediaFinal[ contador ] > 2 então rlMediaAtualizada[ contador ] <- rlMediaFinal[ contador ] - 2 senão rlMediaAtualizada[ contador ]<- rlMediaFinal[ contador ] fimSe contador <- contador + 1 fimEnquanto //Exibir os resultador na tela escrever "------------------------" contador <- 0 enquanto contador < BASE faz escrever "\nAluno ",intMatriculaAluno[ contador ]," tem media final: ",rlMediaAtualizada[ contador ] contador <- contador + 1 fimEnquanto fim
  8. Bom dia, eu acredito que você somente errou por não utilizar estrutura de repetição. Com isso teria maior flexibilidade no código, e também não precisaria escrever cada etapa da tarefa.
  9. Não consegue por que está faltando algumas declarações importantes, o compilador deve está no padrão c++98, adicione a declaração -std=c++11 para utilizar a compilação com padrão 2011 do qual faz parte a sintaxe do exemplo. Recomendo o Code Blocks como sendo melhor aditor para C/C++. Download Code::Blocks
  10. @r1castro1 #include <stdio.h> #include <string.h> #define LEN 1 ///O tamanho em um macro struct doceira { char tipo; float preco; char marca; char dietetico; }; int main( void ) { struct doceira doce[ LEN ] = { 0x0 }; ///Aqui add 'struct' int i; int soma = 0x0; for ( i = 0x0; i < LEN; i++) { printf( "\nInforme o tipo do doce: " ); scanf( " %c",&doce[i].tipo); ///Aqui coloquei espaços no strforms printf( "Informe seu preço: " ); scanf( "%f",&doce[i].preco); printf( "Informe a marca: " ); scanf( " %c",&doce[i].marca); printf( "Informe se é dietetico: " ); scanf( " %c",&doce[i].dietetico ); if (doce[i].dietetico == 'S' ) { soma = soma + 1; } } printf ( "%d, Quantidade dieteticos: ",soma ); return 0;///Done! }
  11. Boa tarde, como se trata de um programa simples fica melhor ver um exemplo, Por questões didáticas fiz a solução em cima do código que você anexou observe livremente abaixo as adaptações: #include <stdio.h> int main( void ) { int i,j,k,x; i = j = k = x = 0x0; ///Sempre iniciar as variáveis. int A[ 0x4 ] = { 0x0 }; /// int B[ 0x4 ] = { 0x0 }; /// //#1 FOR for( i = 0x0; i < 0x4; i++ ) { printf( "enter a number: " ); scanf( "%d",&A[ i ] ); B[ i ] = A[ i ]; //#2 FOR for( j = 0x0; j <= i; j++ ) ///i é o limite, é o número de entredas, { /// if( B[ j ] == B[ j + 0x1 ] ) { printf ("number %d is repeated, type other: ", B[ j ] ); scanf( "%d", &B[ j ] ), j = 0x0; ///Este atributo garante a re-consulta } }//2# FOR END } ///#1 FOR END aninhando o #2 system("pause"); return( 0x0 ); }
  12. Entendo tudo, a conclusão é que temos de aprender o conceito, definição, métodos e propriedades de um STRING em C, portanto segue este link: Ponto V :: Conceitos Básicos :: strings em C Bons estudos.
  13. Boa Tarde @Guilherme Sixe Usa um função para testar se é o não é primo, com teste imprimi quando for primo.
  14. //Observe esta solução; #include <stdio.h> int main( void ){ char strNome[] = { "Francisco Luiz de Azevedo" }; //Antes printf( "Normal: %s\n", strNome ); //Localizar o sobre nome depois do primeiro espaço int ch = 0, aux; while( strNome[ch++] != ' ' )continue; //Cobrir strNome[ aux = ++ch ] = '.'; while( strNome[ ++aux ] != ' ' )continue; while( strNome[ ch++ ] ) strNome[ ch ] = strNome [ aux++ ]; //Printf Resultado printf( "Abreviado: %s\n", strNome ); return 0; }
  15. O resultado é: a1=6, b1=30 está correto.
  16. Não chega a ser um padrão oficial, contudo como o próprio autor diz "Depois de estudos e da experiência adquirida nos projetos" ele chegou a este que pode vir a ser um exemplo a seguir.
  17. Ansi C

    Expressão c#

    A resposta correta é a letra C, na linguagem existe os operadores que são shifts aritméticos, ou seja, resume operações aritméticas onde um dos termos é operador e recebe o valor ao mesmo tempo. No problema assim x += 3 é mesmo que x = 3 + x, por tanto SE x == 1 ENTÃO x = 4, logicamente escrevendo a operação como sendo 4 = x + 3 ⇒ x = 1
  18. A pergunta é bom, e existem normas determinadas por grupos de programadores, ou sociedade. Não existe nada de meu conhecimento que seja oficial, entretanto existe um padrão ou regra que inviabiliza variáveis que comece com números, isto é proibido. No seu exemplo poderia escrever como: strpick() ou str_pick() ou ainda strPick() em ainda assim: fnStrPick() fn - sigla para function. Como já disse não reconheço padrões para este tipo de elemento do código, em geral você pode copiar o estilo de um programador famoso.
  19. Você usou o operador ( . ) decimal de fração 1.600 < 2 dentro de um código C
  20. Não é uma das tarefas mais complicadas: Com alguns IF ELSE resolverá o problemas, busque mais detalhes e complemente aprendendo as características de cada operador lógico.
  21. Eu acho que a questão é sobro o alinhamento dos números, é isso?@Dauster Skywallker
  22. // //Bom Dia! Estou tendo problemas para exibir uma matriz alocada, sempre na hora de exibir, o programa para e fecha, alguém sabe onde pode estar o erro? // #include <stdio.h> #include <stdlib.h> int main(){ int **cria_tabuleiro(int linha, int coluna, int ***p); int linha = 5, coluna = 5, **mat, i, j; cria_tabuleiro(linha, coluna, &mat); //! Para que mat seja visível na função necessário seu ponteiro printf("Exibir Matriz:\n"); //! Declarado no argumento e parâmetro. for(i=0; i<linha;i++){ printf("\n"); for(j=0; j<coluna;j++){ printf("%d ", mat[i][j]); } } } int **cria_tabuleiro(int linha, int coluna, int ***p){ int i, j, x, y; (*p) = (int**) calloc (linha, sizeof(int*)); if ((*p) == NULL){ printf ("Erro de Memoria\n"); return NULL; } for(i = 0; i<linha; i++){ (*p)[i] = (int*) calloc (coluna, sizeof(int)); //! Aqui fiz a correção, //! [i] acessa a colunas da matriz e adiciona as linhas com função calloc. if (p == NULL) { printf ("Erro de Memoria\n"); return NULL; } } } @Douglasdmll Bom dia!
  23. Boa noite @Mayk.hsm Aqui está minha solução </code> #include <stdio.h> int main( void ){ char text[] = "Macacos gostam de Banana, elefantes gostam de amendoim."; char p[] = "amendoim"; int i = 0; //! Variável inteira Índice do texto. int j = 0; //! Variável inteira Índice da palavra. int t = 0; //! Variável inteira quantidade de ocorrências de p em text. while( text[i] != '\0' ){ //! Laço continuar até que o texto chegue ao fim. if( text[i++] == p[j] || (j = 0) )j++;//! Se os caracteres coincidem incrementa. //! Se não reinicia se o índice da palavra com j <- 0 dentro operador OU. if( p[j] == '\0' )printf( "%d-%s\n", 1+t, p ), j = 0, t++;//! j atingiu o max //!de incremento, por tanto, palavra encontrada então imprimi, incrementa o contador e //!reinicia o índice da palavra j <- 0. } printf( "%s%s%s%d%s",//!Imprime o resultado. "A palavra /",p,"/ repetiu ", t, " vezes.\n" ); return 0; } Solução usa o mínimo de conhecimento inicial da linguagem, com noções em ARRAYS, loop WHILE e declaração IF mais Operadores lógicos ( == IGUAL, || OU/Alternante) e incremento ++.
  24. @Mayk.hsm O espirito é este mesmo!
  25. @Mayk.hsm com isto construirá ainda mais conhecimento, reposte as fazes do código

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!