-
Posts
3.284 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Ansi C postou
-
C Existe algum comando em C para voltar o programa?
Ansi C respondeu ao tópico de Vaulot_Boi em C/C#/C++
Nesse situação hipotética, em tese poderias dizer que "voltou ao menu", porém só que não. O que realmente faz é criar novas instâncias do menu na memória, desta forma, teria duas ao mais vezes o menu na memória, esse número aumente a medida que a função soma é chamada, com isso por exemplo: Se chamar a função soma() 10 vezes, 10 vezes a função menu e soma ocuparam em espaço na memoria, quando digo a função em me refiro a: Parâmetros, variáveis não estáticas. Não significa prejuízo em termos de processamento e memória porque C tem pilha dinâmica e vai conseguir lhe dar com isso, provavelmente a chamada heurística vai otimizar para loop em pré-compilatório, ou seja, compilador fará o que não fez -um loop-, ou não fará nada se for dos piores. Sim podemos chamar essa função quantas vezes a memória suportar sem problemas. -
@Grace Gomes Ola! Tens dificuldades conceituais que não deverias ter, este site: https://www.cprogressivo.net/2014/01/Apostila-de-C-Ponteiro-Vetor-Matriz-String.html fornece, de graça, bons resumos que ajuda no entendimento. Leia !!!!!
-
#include <stdio.h> int main (void){ int idade; printf ("Digite a idade: "); scanf ("%d",&idade); if (idade >= 51){ printf("Velho\n"); } else if (idade >= 21){ printf("Adulto\n"); } else if (idade >= 13){ printf("Adolescente\n"); } else if (idade >= 5){ printf("Criança\n"); } else{ printf("Bebe\n"); } return 0; } É só mais um estilo de muitos, eu gosto assim!
-
Olá ... ! Não existe documentos acerca de um padrão universal [pelo menos nunca pesquisei], apenas estilos múltiplos, alguns grupos formalizam seus estilos quando fazem trabalhos cooperativos e diante disso conceituam a forma certa. A maioria dos codificadores, optará pela formato mais legível [os estilos mais presentes na literatura como sendo o melhor] e podem até adotar como certo, contudo, a única forma errada é aquela que não funciona [que tem erros lógicos]. A principal regra nas palavras do PhD McCann, acima de todas é; ser consistente. Isto é, ele nos diz para não fazer de todas as maneias sem ordem, pelo contrário, busque unificar o seu estilo para que assim codifique de maneira limpa, elegante e homogênea, caso contrário seria um carnaval aqui no Brasil. adicionado 10 minutos depois Hits: Um dica pessoal é sempre usar blocos { ... } mesmo quando não precisa, pois assim não perdesse ponto na consistência.
-
C Existe algum comando em C para voltar o programa?
Ansi C respondeu ao tópico de Vaulot_Boi em C/C#/C++
Olá. Para isso, coloque o menu dentro de: while, for, do, ou até goto. do { ... } while(0 != choose); // se choose for igual a 0 então para a repetição (loop) Exemplo assim como while: um variável [choose] que recebe vários valores do menu, quando igual a 0 então não reapresenta o menu que está dentro do{ ... }while -
Não percebi que havia escrito scanf é printf #include <stdio.h> int main() { char * pbyte = 0x2000; while (pbyte <= 0x2500) printf ("%d",* pbyte++); // imprimir byte a byte [1 a 1] dos 0x0500 primeiros bytes // a partir da célula de memória 0x2000. return 0; } adicionado 2 minutos depois Concertei a condição loop também. adicionado 4 minutos depois estou usando celular, mas acho que agora vai
-
Para imprimir byte a byte então tente assim: #include <stdio.h> int main() { char * pbyte = 0x2000; while (0x2500 <= pbyte) scanf ("%d",* pbyte++); // imprimir byte a byte [1 a 1] dos 0x0500 primeiros bytes // a partir da célula de memória 0x2000. return 0; } Exatamente porque cada inteiro tem 4 bytes, o ponteiro do tipo int obedece essa regra, saltando de 4 em 4 bytes.
-
@devair1010 Imprimindo de 4 em 4 bytes ou quê?
-
Olá ... ! Não é nada diferente de imprimir um vetor, e essa é operação ideal, você já tem a melhor. Só um detalhe 0x002000 > 2000, por motivo das bases .
-
Exatamente como imaginei, conio.h. Obrigado!
-
independe do scanf, poderia ser função implementada. Por exemplo Digite 4 valores inteiros Entrada: 1 2 3 4 Saida: int{4, 3, 2, 1} foram digitados! Nesta situação hipotética, temos captura de dados e progressão do programa com saída sem [ENTER] no final das entradas.
-
Ola ...!!! Eu entendo que o autor gostaria de saber como capturar 4 valores, sem que para isso precise do [ENTER] no final. Também quero saber se possível é.
-
C Como encontrar os divisores de um número de forma rápida
Ansi C respondeu ao tópico de diogo moura em C/C#/C++
Acredito que sim, é possível existir tabelas com resultados, ou matriz logarítmica. Algo semelhante a tabela de resultado para funções trigonométricas de quase todos os Ângulos. Isso explicaria rapidez para resolução de base 10, é puro calculo, nada de álgebra ou aritmética . -
C Como encontrar os divisores de um número de forma rápida
Ansi C respondeu ao tópico de diogo moura em C/C#/C++
Percebo, mas não acredito que calcular a raiz exata envolve muitos processos lógicos e com muitas casas decimais, seja tão mais rápido. Estou muito surpreso com a agilidade da função raiz. valeu adicionado 3 minutos depois Se bem que para base 10 me parece muito simples de ser feito, melhor seria que o numerador fosse escolhido "aleatoriamente". -
C Como encontrar os divisores de um número de forma rápida
Ansi C respondeu ao tópico de diogo moura em C/C#/C++
@isrnick Exemplo? -
C Como encontrar os divisores de um número de forma rápida
Ansi C respondeu ao tópico de diogo moura em C/C#/C++
Exatamente haverá ganho, e para números pares permanece normal. Como há imprevisibilidade entre pares e ímpares existe ganho. A ideia é explorar as possibilidade. Não sei dizer ao certo o custo de calcular a raiz quadrada, porém acredito ser maior ou igual a repetição. adicionado 2 minutos depois Principalmente quando as operações se dão com números flutuantes (caso da raiz) que tem maior custo de processamento. adicionado 5 minutos depois Em fim, tudo que sei me leva a crer que há maior ganho sem a raiz. Carecemos de teste para dar fim as hipóteses. -
C Como encontrar os divisores de um número de forma rápida
Ansi C respondeu ao tópico de diogo moura em C/C#/C++
Experimente digitar um número negativo, na realidade não deve funcionar porque não existe raiz real de número negativo. Por que eu acho que meu código mais rápido? Porque excluiu a verificação de valores pares para números ímpares. -
Inclua ambas bibliotecas ou cabeçario em um terceiro, daí quando precisar das duas chame apenas um #include terceiro.h
-
Problema de indentação!? #include <stdio.h> float transformando(float graus); int main(){ ... return 0; } float transformando (float graus){ float f = 0; f = ((9.0/5.0) * graus ) + 32; return f; } Corrige apenas a função transformadora: Perceba que para garantir que as temperatura sejam bem convertidas nós operamos com variáveis do tipos flutuantes (type float) neste caso.
-
C Porque o console retorna um numero mesmo quando a main é void?
Ansi C respondeu ao tópico de Jessé P. de Melo em C/C#/C++
Olá! Eu suspeito que; Quem retorna é o contêiner [ou inglês: container]. Por exemplo: Se a IDE é Code :: Block então ao executar o programa por meio da IDE um outro programa [container] é quem o recebe, daí ao finalizar o programa com void dentro do container é o container quem recebe o sinal mudo do programa void, este por sua vez, retorna o status da operação para IDE no local aonde fica o relatório de execução. Ou seja, quem retornou 0x15 foi o programa container e não o código do programa implementado com void main(). adicionado 7 minutos depois Eu suspeito que esse é o sinal para erro em tempo de execução. Mas esquenta com isso não, tem coisa mais uteis a estudar. -
Olá! Esse é um exercício que envolva matrizes; Cada prédio é um vetor de 2 dimensões [ou matriz] assim o número de andares e apartamentos é respectivamente o número de linhas e coluna da matriz. Portanto, basta percorrer todas as colunas [apartamentos] de cada linha [andares] e preenchendo com número de moradores. Esse exercício envolve: Lista estática de estrutura de dados [Matrizes ou Vetores]; Estruturas de Loop; for, while, do, ou até goto. Este último goto é menos apreciado que os outros. Melhor é estudar todos e posteriormente nos dar a sua tentativa de solução, para que assim, nos outros tenhamos por onde começar a ti ajudar.
-
C Como passar parametros para função direto pelo scanf
Ansi C respondeu ao tópico de Jessé P. de Melo em C/C#/C++
Melhor maneira que conheço é aquela que indiquei acima. -
C Como passar parametros para função direto pelo scanf
Ansi C respondeu ao tópico de Jessé P. de Melo em C/C#/C++
Com scanf? Não! adicionado 1 minuto depois Pelo menos, não da maneira direta como vemos aqui adicionado 4 minutos depois int pegar_int(void){ int scn = 0; scanf("%i", &scn); return scn; } ... conversor_hrs(pegar_int(),pegar_int(),pegar_int()); -
Este sítio fornece bom apontamento e exercício de vetores, com gabarito; https://www.cprogressivo.net/p/vetores-em-linguagem-c.html
-
C como trabalhar com ponteiro nulo sem ele apontar para qlq lugar
Ansi C respondeu ao tópico de Jessé P. de Melo em C/C#/C++
Então pois somente restava fazer como abaixo: int z=0; /*COntador para saber em qual indice do encontrados copia*/ for(int x=0;x<5;x++){/*Operação de copia dos titulos encontrados */ char *ret=NULL; ret=strstr(livros[x].titulo,pesquisar); if(ret!=0){ encontrados[z]=livros[x]; z++; } } for(int x=0;x<z;x++){ /*se o indice do vetor encontrados for uma letra imprime resultado*/ if((encontrados[x].titulo[0]!='\0')){ /*Tenho duvidas se o processo anterior e suficiente então fiz esse redundante*/ printf("\nTitulo: %s\tAutor: %s\tAno: %i\n\n",encontrados[x].titulo,encontrados[x].autor,encontrados[x].ano); } } colocar o z, pois z é numero de ocorrências então imprimir z elementos.
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