Ir ao conteúdo
  • Cadastre-se

1freakday

Membro Pleno
  • Posts

    671
  • Cadastrado em

  • Última visita

  1. @Gabriel Salem Como você está declarando oi e e aí como ponteiro, você precisa alocar uma struct com malloc. Se não quiser alocar, use: Tipo1 oi e Tipo2 iaí, e acesse usando oi.nome e iaí.moca P.S: strcpy não é seguro para projetos, use strncpy.
  2. Para imprimir toda matriz, você faz como o @Rui Neto falou, caso contrário seu código precisa de umas melhoradas: #include<stdio.h> int main () { // m[linhas][colunas] int m[5][5],i,j; // mudar valores da matriz for(i=0;i<=4;i++){ for(j=0;j<=4;j++){ if(i == j) { m[i][j] = 1; } else { m[i][j] = 0; } } } //imprimir matriz for(i=0;i<=4;i++){ for(j=0;j<=4;j++){ printf("|%d|", m[i][j]); } printf("\n"); } }
  3. @Eric MGS Vamos supor que você escreva na entrada: João recebeu 1 salário de 4.300,35 em 3.0 dias. Essa entrada é 'armazenada' em uma string. Porém você quer separar todos elementos, identificar seu tipo e então verificar com sizeof. Portanto é preciso separar, mas antes temos que identificar cada coisa, exemlpo: Joao - string recebeu - string 1 - int salário - string de - string 4.300,35 - float em - string 3.0 - int / float dias - string Para identificar é preciso criar um algorítimo ou usar strtok, para separar, assim depois de separar cada palavra, é preciso verificar se tal char é um numero, e encontrar seu fim. Ao encontrar o fim do número é preciso manter ele em um buffer e usar atoi, atol, etc.Exemplo: mensagem[100] = "João recebeu 1 salário de 4.300,35 em 3.0 dias" mensagem[0][ i ] == isalpha ? true -> nova string Palavra -> encontrar final false -> verificar se é numero -> encontrar final é só você encontrar uma forma de separar os elementos e identificar o tipo
  4. Dê uma estudada melhor sobre os tipos de funções e formas de retorno, segue: tipo Pilha_x(){ return ret_tipo; } bool Pilha_x(){ return true; } int Pilha_x(){ return 0; } char Pilha_x(){ return 65;//A } scanf ("%c %f", &b1.nome, &b1.peso );
  5. Não, se você fizer isso você vai obter o tamanho de bytes de char.
  6. @Eric MGS Em uma string só há char's(caracteres) relacionado a um decimal da tabela ascii, portanto sizeof(char) tem a mesma quantidade de bytes que sizeof(int) Para ter os bytes de cada tipo, da string, você precisa separar esses valores, seja com scanf, etc, armazenar em uma variável temporária e depois usar sizeof
  7. Se quiser usar um vetor de struct, use: struct data m [T]; struct data a [T]; Acesse: gado.m[0].mes | gado.m[1].mes | ... | gado.m[49].mes gado.a[0].ano | gado.a[1].ano | ... | gado.a[49].ano Caso contrário e quiser usar apenas uma struct, use: struct data m; struct data a; Acesse: gado.m.mes gado.a.ano
  8. Boa noite, vou fazer uma introdução básica sobre como fazer um programa simples em Go, tendo como finalidade, imprimir Hello World. Pré-requisitos Pacotes de desenvolvimento GO - https://golang.org/dl/ IDE para GO - recomendo LiteIDE - https://github.com/visualfc/liteide A linguagem GO Provavelmente muitos já ouviram falar dessa linguagem, mas poucos pesquisaram, enfim, vou dar uma breve introdução, assim poderemos compreender melhor tal linguagem. A linguagem Open-Source foi criada pela Google, para competir com as atuais linguagens, e pode atuar diversas aplicações. Go atualmente é a 9º linguagem mais usada no GitHub. Fonte: octoverse.github.com Já com 8 anos e fazendo muito sucesso, foi anunciado planos para Go 2, segue: https://blog.golang.org/toward-go2 Programa Hello World Inicialmente precisamos entender como funciona o Workspace: Um Workspace contém várias versões de controle, seja com Git, Svn, etc Cada repositório contém um ou vários package(pacote) Cada package consiste em um ou vários arquivos no diretório determinado. ( Todos arquivos .go em uma pasta são 'automaticamente' compilados) Finalmente vamos ao programa: //Identificamos como 'main' o package //responsável pela func main() package main //Importamos o package fmt para funções //como Printf import ( "fmt" ) //Função principal, que imprime //"Hello World!" e não há retorno func main(){ fmt.Printf("Hello World!") } Para usarmos retornos e outras funções, temos que determinar qual tipo de retorno será, por exemplo: package main import ( "fmt" ) //veja que primeiro determinanos os argumentos da seguinte forma: // nome da variavel: mensagem - // e tipo: string //Também determinamos nosso retorno como (int) func func1(mensagem string) int { if len(mensagem) > 0 { fmt.Println(mensagem) return 1 } return 0 } func main() { var i int var msg string fmt.Println("Digite uma mensagem: ") fmt.Scanf("%s", &msg) //chamada e retorno i = func1(msg) //se nao usassemos var i int, usariamos: //i := func1(msg) //sendo i auto int if i == 1 { fmt.Printf("Mensagem preenchida") } else { fmt.Printf("Mensagem vazia") } } Ao aprofundarmos mais nas variadas packages, podemos até criar um pequeno servidor 'http', onde podemos acessar normalmente as páginas html, imagens, css e js: // https server 0.0.1 // author: TYSQR89 - 2017 // basta colocar as páginas .html, etc, na mesma pasta // do programa.exe // e no navegador digite: localhost:8080/index.html package main // pacotes import ( "bytes" "fmt" "image" "image/jpeg" "image/png" "io/ioutil" "log" "net/http" "os" "strconv" "strings" ) type Pagina struct { titulo string //arquivo da página localhost/titulo body []byte //body será o conteudo do arquivo } //Carregar o arquivo da página func carrPagina(arquivo string) (*Pagina, error) { //lê conteúdo do arquivo body, err := ioutil.ReadFile(arquivo) //falha ao abrir arquivo if err != nil { fmt.Println("Falha ao abrir [", arquivo, "] !") return nil, err } //retorna página aberta - Pa return &Pagina{titulo: arquivo, body: body}, nil } //Carrega e envia imagem para o client func enviarImagem(w http.ResponseWriter, fname string, ftype string) { fimg, _ := os.Open(fname) defer fimg.Close() img, _, _ := image.Decode(fimg) buffer := new(bytes.Buffer) //tipo .jpg if ftype == ".jpg" { //codifica para jpg - armazena em buffer if err := jpeg.Encode(buffer, img, nil); err != nil { log.Println("Falha ao codificar.") return } } //tipo .png if ftype == ".png" { //codifica para png - armazena em buffer if err := png.Encode(buffer, img); err != nil { log.Println("Falha ao codificar.") return } } //determina tamanho da imagem w.Header().Set("Content-Length", strconv.Itoa(len(buffer.Bytes()))) //envia imagem para o cliente if _, err := w.Write(buffer.Bytes()); err != nil { log.Println("unable to write image.") } } //Lida com os clientes func handler(w http.ResponseWriter, r *http.Request) { var p2 *Pagina var err error var contentType string //carrega página padrão if len(r.URL.Path[1:]) <= 0 || string(r.URL.Path[1:]) == "index" { p2, err = carrPagina(string("index.html")) } else { //carrega página solicitada p2, err = carrPagina(r.URL.Path[1:]) } //determina tipo de conteúdo if strings.HasSuffix(p2.titulo, ".css") { contentType = "text/css" } else if strings.HasSuffix(p2.titulo, ".png") { contentType = "image/png" w.Header().Set("Content-Type", contentType) enviarImagem(w, p2.titulo, ".png") return } else if strings.HasSuffix(p2.titulo, ".html") { contentType = "text/html" } else if strings.HasSuffix(p2.titulo, ".jpg") { contentType = "image/jpeg" w.Header().Set("Content-Type", contentType) enviarImagem(w, p2.titulo, ".jpg") return } else if strings.HasSuffix(p2.titulo, ".js") { contentType = "text/javascript" } else { contentType = "text/plain" } if err != nil { fmt.Println("Falha ao abrir [", p2.titulo, "] !") } else { w.Header().Set("Content-Type", contentType) fmt.Println("Pagina enviada [", p2.titulo, "] !") // envia dados para o cliente fmt.Fprintf(w, string(p2.body)) } } func main() { http.HandleFunc("/", handler) //lida com path / http.HandleFunc("/css", handler) //lida com path /css http.HandleFunc("/js", handler) //lida com path /js http.HandleFunc("/images", handler) //lida com path /images http.ListenAndServe(":8080", nil) //inicia em localhost:8080 } Qualquer dúvida pode perguntar. "Aprendemos todos dias e não há motivo para descreditar o erro, poís cada erro é uma nova oportunidade para o sucesso."
  9. @andrelopes0 De acordo com seu código, se você digitar as linhas: 287 715 112 530 249 406 234 287 Então a ordem de procura, será assim: 1. 287 == num > V 2. 112 != num > I 3. 530 != num > I 4. 249 != num > I 5. 406 != num > I 6. 234 != num > I 7. 287 != num > I
  10. @andrelopes0 Qual o problema com a saída? Se você verificar, ele busca o valor correto depois imprime V, ai quando ele retorna recursivamente, ele acaba imprimindo I. Tente assim: int consulta(ArvBin r, int num){ if (r!=NULL){ if(r->info == num){ printf("V\n"); return 0; }else{ if(r->info < num) num = consulta(r->dir, num); else num = consulta(r->esq, num); if(num != 0){ printf("I\n"); } } } }
  11. @andrelopes0 quando você declarar uma variável/objeto 'iniciada', significa que ela nunca será NULL por definitivo, portanto em consulta você precisa usar ponteiro: void consulta(ArvBin *raiz, int num){ ... } Caso você não use como ponteiro, você simplesmente vai copiar os elementos de 'raiz' para o argumento raiz de consulta. Sem ponteiro você também precisa usar .(ponto) em vez de ->
  12. @PBlackOuT O erro consiste em você declarar uma função dentro do case '5' ... Você precisa declarar acima de main e depois usar apenas a chamada dessa função.
  13. @Buzina Lopes lixo no buffer, use fflush(stdin), antes da mensagem de cpf inválido.
  14. @lenayoung Veja que aqui não deveria ter retorno, ou não deveria ser void: void letermo() { int struct Termo t; scanf("%1.f x %d", &t.coef, &t.expo); return t; <---- }
  15. Qual o output do compilador? Não seria melhor usar float main() ? ou int main()...

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