Ir ao conteúdo
  • Cadastre-se

CiroboyBR

Membro Pleno
  • Posts

    1.045
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de CiroboyBR em Qt , API win32 , GTK+ , Visual c++ foi marcado como solução   
    Tem a WxWidgets, é uma boa alternativa: http://www.wxwidgets.org/
     
    Aqui uma playlist de instalação e uso básico da biblioteca
     
     
  2. O post de CiroboyBR em Erro com loop infinito foi marcado como solução   
    Não há erro no seu código. Porém, você tem que tratar uma possível inserção errada por parte do usuário.

    A maneira mais segura de fazer isso é lendo uma string.
     
    #include<iostream> using namespace std; int main() { retry: cout << " -----O que voce faz?-----\n\n"; string Escolha1; cout << "*1 = Ataca.\n"; cout << "*2 = Se defende.\n"; cin >> Escolha1; if (Escolha1 == "1") { cout << "\nVoce atacou a criatura!"; } else if (Escolha1 == "2") { cout <<"\nVoce se defendeu!"; } else { cout << "\n voce esta fazendo errado,Guerreiro! Escolha '1' para atacar e '2' para se defender!\n\n"; goto retry; } }  
  3. O post de CiroboyBR em PC desliga após alguns segundos, cooler e fonte continuam ligados foi marcado como solução   
    Só restou placa-mãe. Pode ser algum resistor ou capacitor que parou de funcionar. No meu trabalho tem um computador dual core que caiu a solda de um capacitor, sem o capacitor o até computador liga, mas não dá boot no HD.

    Enfim, no seu caso, deduzo que algum componente da placa-mãe esteja danificado, consequentemente isso pode estar causando a instabilidade.
  4. O post de CiroboyBR em Potenciação em linguagem C foi marcado como solução   
    %lf para double, tanto no printf como no scanf
     
    double pot(double x, unsigned int k) { if(k==0) return 1; if(k==1) return x; return x *(pot(x, k-1)); } int main() { int k; double x; printf ("Digite o valor da Base: "); scanf ("%lf", &x); printf ("Digite o valor do Expoente: "); scanf ("%d", &k); printf ("\n %lf^%d = %lf\n", x, k, pot(x, k)); return 0; }  
  5. O post de CiroboyBR em Como conectar a um banco SQL Server pelo C? foi marcado como solução   
    Coisa da Microsoft você vai achar no site da Microsoft. Boa sorte.

    https://docs.microsoft.com/pt-br/azure/sql-database/sql-database-develop-cplusplus-simple
    https://github.com/Microsoft/VCSamples/tree/master/VC2015Samples/ODBC database sample (windows)
     
  6. O post de CiroboyBR em Função para multiplicar matrizes quadradas. olhem meu código. foi marcado como solução   
    @Guilherme Sixe a multiplicação é um asterisco *
    A * B; // Lê A vezes B.  
  7. O post de CiroboyBR em Função para soma de duas matrizes 6x6. foi marcado como solução   
    #include<stdio.h> #include<stdlib.h> #define tam 3 int i, j, mat1[tam][tam], mat2[tam][tam], mat3[tam][tam]; void soma(int mat1[][tam], int mat2[][tam]); int main() { for(i=0; i<3; i++) { for(j=0; j<3; j++) scanf("%d", &mat1[i][j]); } for(i=0; i<3; i++) { for(j=0; j<3; j++) scanf("%d", &mat2[i][j]); } printf("Matriz 1:\n\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%3.d\t", mat1[i][j]); printf("\n\n"); } printf("Matriz 2:\n\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%3.d\t", mat2[i][j]); printf("\n\n"); } printf("A soma das matrizes é igual a: \n\n"); soma(mat1, mat2); return 0; } void soma(int mat1[][tam], int mat2[][tam]) { int i; int j; for(i=0; i<3; i++) for(j=0; j<3; j++) mat3[i][j] = mat1[i][j] + mat2[i][j]; for(i=0; i<3; i++){ for(j=0; j<3; j++) printf("%d ", mat3[i][j]); printf("\n"); } }  
  8. O post de CiroboyBR em Problema em c foi marcado como solução   
    @robson dw Quando você vai comparar um char, tem que usar aspas simples.
    if(letra[lin] == 'm') Aspas duplas é só pra string
  9. O post de CiroboyBR em Transformar double em int foi marcado como solução   
    @eliuccb Eu resolvi essa questão criando um limite superior e inferior para o numero. Pensa bem, a variável é incrementada de 0.2 em 0.2, e o erro na precisão do float é coisas de 0.00000001 . Basta você criar 2 variáveis uma limite_inferior e outra limite_superior. ai você adiciona nelas o valor da do contador e + 0.100 no limite superior, e -0.100 no limite inferior. Depois quando for comparar você não usa igualdade, você compara se o valor esta entre esses 2 limites, se o valor estiver dentro dos limites, você imprime o inteiro, se estiver fora, você imprime a casa decimal.

    tipo assim:
    limiar_a = i - 0.100; limiar_b = i + 0.100; if (ii > limiar_a && ii < limiar_b) printf("I=%.0f J=%.0f\n",i ,j+i); else printf("I=%.1f J=%.1f\n",i ,j+i); Nesse código, ii é um int que recebeu i, simplesmente por atribuição " int  ii = i", o i é um contador do tipo float
  10. O post de CiroboyBR em [Vetor] Posição do menor e maior valor foi marcado como solução   
    é porque quando a posição é 0 ele entra no primeiro if:

     
    if(i == 0){ maior = valor[i]; menor = valor[i]; } ai os outros if's não entram porque o valor é igual.

    tente isso:
    if(i == 0) {  maior = valor[i];  menor = valor[i];  menorPosicao = i;  maiorPosicao = i;}
  11. O post de CiroboyBR em Parametro por valor foi marcado como solução   
    assim como as variáveis, as funções também podem ter tipo. no seu vaso, a sua função tem que ser int.

     
    int quadrado (int x){ if ( x % 3 == 1) return 1; //printf ("valor dividivel\n"); else return 0; printf ("nao divisivel\n");}ai a função vai ser chamada e retornar um valor que pode ser atribuido a uma variavelX = quadrado(12); //como 12 é multiplo de 3, a variavel X vai receber o valor de retorno 1; X vai ser igual a 1.
  12. O post de CiroboyBR em funcoes foi marcado como solução   
    você pode ler apenas uma string e depois processar ela. Ou você pode ler 2 inteiros e 1 char no mesmo scanf.

     
    #include <stdio.h>#include <stdlib.h>#include <math.h>int main() { int a, b; char c; //ler "10 + 20" scanf("%d %c %d", &a, &c, &; printf("A: %d, b: %d, c: %c", a, b, c); //ler "10+20" scanf("%d%c%d", &a, &c, &; printf("A: %d, b: %d, c: %c", a, b, c); if (c == '+') //soma else if (c == '-') //subtrai . . . . system ("pause"); return(0);}
  13. O post de CiroboyBR em Estrutura de aresta foi marcado como solução   
    isso dai se chama grafo valorado. é bem bacana. Uma vez eu tive que apresentar um trabalho, eu peguei a estrutura que o professor usava e adaptei ela pra ficar um grafo valorado, é bem simples, basta perder alguns minutos pensando.

    Se seu professor não tiver disponibilizado nenhuma biblioteca de grafo, pega essa: https://www.passeidireto.com/arquivo/6106247/algoritmo-de-pra mim---grafos

    Dentro desse arquivo ai tem 2 bibliotecas de grafo valorado, uma usando matriz adjacente, a outra usando listas adjacentes que é a que você quer.

     
  14. O post de CiroboyBR em Onde está o erro? - Vetor em C foi marcado como solução   
    #include <stdio.h>
    #include <stdlib.h>
    main(){
    int vet[6],i;
    for(i=0; i<6; i++){
    printf(" Entre com um numero: "); // Lê os valores
    scanf("%d",&vet);
    }
    for(i=5; i >= 0; i--){ // <<------ tem que começar do 5, pois num vetor[6] as posições vão de 0 a 5
    printf("\n Ordem Inversa: %d",&vet);
    }
    system("pause>>null");
    }

  15. O post de CiroboyBR em Problemas com string em struct (estrutura) foi marcado como solução   
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    struct roupa {
    int tamanho, camiseta, calca, x;
    char cor[10];
    float preco_compra, preco_venda, lucro;
    };
    void ler_dados(struct roupa *var) {
    int x;
    char branco[] = "BRANCO";
    printf("Escolha o produto a ser comprado. 1. CAMISETA 2. CALCA \n");
    scanf("%d",&x);
    switch(x) {
    case 1: {
    printf("Escolha a cor da camiseta. 1. BRANCO 2. PRETO 3. AZUL");
    scanf("%d",&x);
    switch(x) {
    case 1: {
    strcpy( (*var).cor, branco);
    printf("%s",(*var).cor);
    }
    break;
    case 2: {
    //cor = "PRETO";
    } break;
    case 3: {
    //cor = "AZUL";
    } break;
    default:
    printf("error");
    }
    }
    break;
    case 2: {
    printf("2");
    }
    break;
    default:
    printf("error");
    }
    }
    void processar_dados(struct roupa *var) {
    }
    void mostrar_dados(struct roupa *var) {
    }
    main() {
    struct roupa var; //struct local
    printf(" ****** SOFTWARE PARA COMPRA DE ROUPAS ****** \n\n");
    ler_dados(&var);
    //processar_dados(&var);
    //mostrar_dados(var);
    }

  16. O post de CiroboyBR em Ajuda para concatenar strings foi marcado como solução   
    typedef struct contato{
    char nome[40];
    char fone[30];
    contato *prox;
    contato *anterior;
    }tpcontato;
    tpcontato *criarlista(tpcontato *l){
    int i, j;
    char aux[40]; // Variavel string auxiliar
    tpcontato* novo = (tpcontato *) malloc(sizeof(tpcontato));
    i = rand()%900+100;
    j = rand()%999999+99000000;
    strcpy (novo->nome, "Fulano: ");
    itoa(i, aux, 10); // converte o numero inteiro i em string e coloca dentro da variavel aux
    strcat (novo->nome, aux);
    strcpy (novo->nome, "Fone: ");
    itoa(j, aux, 10); // converte o numero inteiro j em string e coloca dentro da variavel aux
    strcat (novo->fone, j);
    novo->anterior = l;
    l->prox = novo;
    return novo;
    }

  17. O post de CiroboyBR em Erro compilação TAD / C++ foi marcado como solução   
    Aluno.h
     
    #include <iostream>#include <string>using namespace std;class Aluno {private: string nome, matricula; double notas[7];public: Aluno(); ~Aluno(); Aluno(string n, string m); void leNotas(); double calculaMedia();}; Aluno.cpp
     
    #include <iostream>#include "Aluno.h"#include <string>Aluno::Aluno(string n, string m) { nome = n; matricula = m;}void Aluno::leNotas() { for(int i = 0; i < 7; i++) { cout << "Digite a nota " << i+1 << " do aluno:" << endl; cin >> notas[i]; }}double Aluno::calculaMedia() { double media, soma = 0.0; for(int i = 0; i < 7; i++) { soma += notas[i]; } media = soma/7; return media;}Aluno::~Aluno(){ // delete é utilizado} mian.cpp
     
    #include "Aluno.cpp"int main() { string a, b; cout << "Digite o nome do aluno: "; cin >> a; cout << "\nDigite a matricula do aluno: "; cin >> b; Aluno aka( a, ; aka.leNotas(); cout << "Media = " << aka.calculaMedia() << endl; return 0;}
  18. O post de CiroboyBR em Troca de Valores de uma sruct para outra foi marcado como solução   
    No seu caso, a melhor maneira é igualar uma struct com outra, o C não permite igualar strings, mas se a string estiver dentro de uma struct, você pode igualar uma struct com a outra. Eu sei que é Avacalhisse do C, mas é assim que é.

    Tente isso:

     
    #include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define Max 60struct ficha { char nome[30]; int mat,idade; float nota;};struct aux { char nome[30]; int mat,idade; float nota;};void op1(struct ficha v[60], int n);void op2i(struct ficha v[60], int t);void op2(struct ficha v[60], int l, int r);void op3(struct ficha v[60], int n);int main() { struct ficha v[60]; int n,x; printf("Informe a quantidade de alunos:\n"); scanf("%i",&n); for(x=0; x<n; x++) { printf("Informe o nome do %i aluno: \n ",x+1); fflush(stdin); gets(v[x].nome); printf("Insira a matricula do %i aluno: \n",x+1); scanf("%d",&v[x].mat); fflush(stdin); printf("Informe a idade do %i aluno: \n",x+1); fflush(stdin); scanf("%d",&v[x].idade); printf("Informe a nota do %i aluno: \n",x+1); fflush(stdin); scanf("%f",&v[x].nota); system ("cls"); } { char op; do { system("cls"); printf("\n\n ==== MENU DE opções ====\n"); printf("1-Listar as informações dos alunos: \n"); printf("2-Organizar em ordem crescente (atraves da matricula): \n"); printf("3-Pesquisa atraves da matricula: \n"); printf("4-Sair: \n"); op = getch(); switch(op) { case '1': system("cls"); printf("informações dos alunos: \n"); op1 (v, n); getch(); break; case '2': system("cls"); printf("Opcao 2: \n"); op2i (v, n); getch(); break; case '3': system("cls"); printf("Opcao 3: \n"); //op3 (v, n); getch(); break; case '4': return 0; default: printf("Opcao invalida!\n"); } } while(op != 0); getch(); return 0; } return 0;}void op1(struct ficha v[60], int n) { int x; for(x=0; x<n; x++) { printf("Nome do Aluno: %s\n",v[x].nome); printf("Idade do Aluno: %d\n",v[x].idade); printf("Matricula do aluno: %d\n",v[x].mat); printf("Nota do Aluno: %2.2f\n",v[x].nota); printf("\n"); }}void op2i(struct ficha v[60], int t) { op2(v, 0, t-1);}void op2(struct ficha v[60], int l, int r) { int i,j,pivo=0; i=l; j=r; struct ficha aux; pivo= v[(l+r)/2].mat; printf("pivo %i \n",pivo); do { while(v[i].mat<pivo && i<r) i++; while(v[j].mat>pivo && j>l) j--; if(v[i].mat<=v[j].mat) { aux = v[i]; v[i] = v[j]; v[j] = aux; i++; j--; } } while(i<=j); if(l<j) { op2(v,l,j); } if(i<r) { op2(v,i,l); }}
  19. O post de CiroboyBR em Problema Alocar e Inserir [C] foi marcado como solução   
    O ponteiro não estava apontando para a área alocada na memória, ai dava erro.
    #include <stdio.h>#include <stdlib.h>char** inicializar(int l, int c) { int i,j; char **matriz = (char**)malloc(l*sizeof(char*)); for(i=0; i<l; i++) matriz[i] = (char*)malloc(c*sizeof(char)); return matriz;}char** preencher(int l,int c, char** matriz) { int i,j; for (i=0; i<l; i++) { for(j=0; j<c; j++) matriz[i][j] = '-' ; printf("\n"); }}char imprimirMatriz(int l,int c, char** matriz) { int i,j; for(i=0; i<l; i++) { for(j=0; j<c; j++) printf("%c ",matriz[i][j]); printf("\n"); }}int main() { int i,j,c,l; char **matriz; printf("digite a quantidade de linhas de sua matriz \n"); scanf("%d",&l); printf("digite a quantidade de colunas de sua matriz \n"); scanf("%d",&c); matriz = inicializar(l,c); preencher(l,c,matriz); imprimirMatriz(l,c,matriz); system("pause");}
  20. O post de CiroboyBR em Problema código C foi marcado como solução   
    Troque seu scanf por esse:
    scanf(" %c", &sexo);
    Lembrando que não se deve usar vírgula ( , )  para digitar os numeros float, ao invés disso, use ponto  ( . )
     
    altura: 1,75   <<--------  Errado
    altura: 1.75   <<--------  Certo
  21. O post de CiroboyBR em Arvore Binaria- Problema busca foi marcado como solução   
    O case 4 vai imprimir os dados da esquerda e da direita também, se não tiver dados na esquerda ou direita, ele trava.

     
    #include <stdio.h>#include <stdlib.h>typedef struct a { int dado; struct a *esq, *dir;} no;//função de inserirvoid insere(no **novo, int dado) { if(!*novo) { //Testa se o ponteiro *novo não tem endereço *novo= (no*)malloc(sizeof(no));// Aloca um nó, seu endereço é inserido no ponteiro *novo. (*novo)->esq = NULL; (*novo)->dir = NULL; (*novo)->dado = dado; } else if(dado > (*novo)->dado) { printf("\nDireita"); insere(&(*novo)->dir,dado); } else if(dado < (*novo)->dado){ printf("\n esquerda"); insere(&(*novo)->esq,dado); }}//outras funções...no *busca(no **raiz, int dado) { //*busca retorna o endereço de um nó if(*raiz) { if((*raiz)->dado == dado) { no *aux = *raiz; return aux; } if((*raiz)->dado > dado){ printf("\n%d | vou buscar na esquerda", (*raiz)->dado); busca(&(*raiz)->esq,dado); } else { printf("\n%d | vou buscar na direita", (*raiz)->dado); busca(&(*raiz)->dir,dado); } } else{ printf("\nParei sem achar"); return NULL; }}//mainvoid main() { no *raiz = NULL, *aux; int dado; char op; while(1) { printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); printf("\n@ @"); printf("\n@ 1-Insere\t 2-Imprime\t3-Altura\t4-BuscarNo @"); printf("\n@ 5-Consultar\t 6-Maior\t7-Menor\t8-Remover @"); printf("\n@ 9-ConsultarPai @"); printf("\n@ @"); printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nOP:"); scanf(" %c",&op); system("cls"); switch(op) { case'1': printf("\nDigite o dado a ser inserido:"); scanf("%d",&dado); insere(&raiz,dado); break; case'4': printf("\nDigite o dado do no a ser buscado: "); scanf("%d",&dado); aux = busca(&raiz,dado); if(aux){ printf("\nNo com dado %d, ",aux->dado); } else printf("Nao existe"); break; } }}
  22. O post de CiroboyBR em Vetor dentro de uma estrutura foi marcado como solução   
    Teste isso:
    #include <stdio.h>#include <stdlib.h>typedef struct { // <<------- Mudei aqui int dia; int mes; int ano;}regData;// <<------- Mudei aquitypedef struct { //Registo de voos// <<------- Mudei aqui char passageiros[50][50]; // <<------- Mudei aqui int origem; int destino; int qtdPassageiros; int tamFila; regData data;}regVoos ;// <<------- Mudei aquiint menu() { //Funcao do menu int op; do { printf("\n 1 - Inserir Voo"); printf("\n 2 - Relatorio de voos criados"); printf("\n 3 - Relatorio de voos confirmados"); printf("\n 4 - Lista de passageiros"); printf("\n 5 - Lista de espera de voos"); printf("\n 6 - Fechar"); printf("\n"); printf("\nDigite a opcao: "); scanf("%d", &op); system("cls"); } while((op<1) || (op > 6)); return op;}void leData(int *dia, int *mes, int *ano, int *valido) { //Procedimento para validar a data if (((*mes == 1) || (*mes == 3) || (*mes == 5) || (*mes == 7) || (*mes == 8) || (*mes == 10) || (*mes == 12)) && ((*dia >= 1) && (*dia <= 31))) *valido = 1; else if (((*mes == 4) || (*mes == 6) || (*mes == 9) || (*mes == 11)) && ((*dia >= 1) && (*dia <= 30))) *valido = 1; else if ((*mes == 2) && ((*dia >= 1) && (*dia <= 28))) *valido = 1; if(*valido == 0) printf("Data invalida! Digite novamente. \n"); printf("\nPressione uma tecla"); getchar(); system("cls");}int main() { int valido = 0; int existe = 0; int teste = 0; regVoos listaEspera[20]; regVoos voosCriados[20]; int qtdVoosCriados; int op; char nome[50]; int destinoOp, origemOp; int dia, mes, ano; char locais[15][30] = {"Rio de Janeiro", "Foz do Iguacu", "Florianopolis" , "Sao Paulo", "Salvador", "Fortaleza", "Porto Alegre", "Manaus", "Belo Horizonte", "Curitiba", "Brasilia", "Campo Grande", "Belem", "Natal", "Boa Vista" }; qtdVoosCriados = 0; op = menu(); while(op != 6) { //Enquanto não for selecionada a opcao de sair switch(op) { case 1: // Novo passageiro printf("Digite o seu nome: "); scanf("%s", &nome); do { printf("Selecione a opcao de origem: "); for(int i = 0; i<15; i++) { // Percorre o vetor de locais, apresentando as opcões de origem printf("\n %d - %s",i+1, locais[i]); } printf("\nOpcao: "); scanf("%d", &origemOp); if((origemOp >15) || (origemOp < 1)) printf("Opcao Invalida"); } while((origemOp <1) || (origemOp > 15)); system("cls"); printf("Selecione a opcao de destino:"); do { // Laço para que a opcao de origem não seja a mesma de destino for(int i = 0; i<15; i++) { // Percorre o vetor de locais, apresentando as opcões de destino printf("\n %d - %s",i+1, locais[i]); } printf("\nOpcao: "); scanf("%d", &destinoOp); if((destinoOp >15) || (destinoOp < 1)) printf("Opcao Invalida"); system("cls"); if(origemOp == destinoOp) { printf("Origem igual a destino. Escolha outro destino!\n"); } } while((origemOp == destinoOp) || (destinoOp <1) || (destinoOp > 15)); // Condicao do laco origemOp = origemOp - 1; // Decrementa uma unidade, pois a opcao 1 apresentada é a posicao 0 do vetor destinoOp = destinoOp - 1; // Decrementa uma unidade, pois a opcao 1 apresentada é a posicao 0 do vetor system("cls"); printf("DATA\n"); while(valido == 0) { printf("Dia: "); scanf("%d", &dia); printf("Mes: "); scanf("%d", &mes); printf("Ano: "); scanf("%d", &ano); leData(&dia, &mes, &ano, &valido); } valido = 0; for(int i = 0; i <= qtdVoosCriados; i++) { // Laço para comparar informações if (((dia == voosCriados[i].data.dia ) && (mes == voosCriados[i].data.mes) && (ano == voosCriados[i].data.ano)) && ((origemOp == voosCriados[i].origem) && (destinoOp == voosCriados[i].destino))) { teste = 1; if(voosCriados[i].qtdPassageiros == 5) { // Testa se já existe 5 passageiros no voo if(voosCriados[i].tamFila == 10) { //Testa se o tamanho da lista de espera está cheia printf("Voo e lista de espera lotados."); } else { // Adiciona passageiro à lista de espera listaEspera[i].destino = destinoOp; listaEspera[i].origem = origemOp; strcpy(listaEspera[i].passageiros[voosCriados[i].qtdPassageiros + 1], nome);// <<------- Mudei aqui // listaEspera[i].passageiros[voosCriados[i].qtdPassageiros + 1] = nome;// <<------- Mudei aqui listaEspera[i].data.dia = dia; listaEspera[i].data.mes = mes; listaEspera[i].data.ano = ano; voosCriados[i].tamFila++; } } else { // Adiciona passageiro ao voo já existente voosCriados[i].qtdPassageiros++; } } } if(teste == 0) { voosCriados[qtdVoosCriados+1].origem = origemOp; voosCriados[qtdVoosCriados+1].destino = destinoOp; voosCriados[qtdVoosCriados+1].data.dia = dia; voosCriados[qtdVoosCriados+1].data.mes = mes; voosCriados[qtdVoosCriados+1].data.ano = ano; voosCriados[qtdVoosCriados+1].qtdPassageiros = 1; voosCriados[qtdVoosCriados+1].tamFila = 0; qtdVoosCriados++; } teste = 0; break; case 2: for(int i = 1; i <= qtdVoosCriados; i++) { printf("\nOrigem: %s", locais[voosCriados[i].origem] ); printf("\nDestino: %s", locais[voosCriados[i].destino] ); printf("\nData: %d/%d/%d", voosCriados[i].data.dia, voosCriados[i].data.mes, voosCriados[i].data.ano); printf("\nQuantidade de passageiros: %d", voosCriados[i].qtdPassageiros); printf("\nTamanho da lista de espera: %d", voosCriados[i].tamFila); printf("\n======================================================="); } break; case 3: for(int i = 1; i<=qtdVoosCriados; i++) { if(voosCriados[i].qtdPassageiros >= 2) { teste = 1; printf("\nOrigem: %s", locais[voosCriados[i].origem] ); printf("\nDestino: %s", locais[voosCriados[i].destino] ); printf("\nData: %d/%d/%d", voosCriados[i].data.dia, voosCriados[i].data.mes, voosCriados[i].data.ano); printf("\nQuantidade de passageiros: %d", voosCriados[i].qtdPassageiros); printf("\nTamanho da lista de espera: %d", voosCriados[i].tamFila); printf("\n======================================================"); } if(teste == 0) { printf("Nao ha passageiros na lista de espera"); printf("\n\nPressione uma tecla"); getchar(); } } break; case 4: printf("Selecione a opcao de origem: "); for(int i = 0; i<15; i++) { // Percorre o vetor de locais, apresentando as opcões de origem printf("\n %d - %s",i+1, locais[i]); } printf("\nOpcao: "); scanf("%d", &origemOp); system("cls"); printf("Selecione a opcao de destino:"); do { // Laço para que a opcao de origem não seja a mesma de destino for(int i = 0; i<15; i++) { // Percorre o vetor de locais, apresentando as opcões de destino printf("\n %d - %s",i+1, locais[i]); } printf("\nOpcao: "); scanf("%d", &destinoOp); system("cls"); if(origemOp == destinoOp) { printf("Origem igual a destino. Escolha outro destino!\n"); } } while(origemOp == destinoOp); // Condicao do laco origemOp = origemOp - 1; // Decrementa uma unidade, pois a opcao 1 apresentada é a posicao 0 do vetor destinoOp = destinoOp - 1; // Decrementa uma unidade, pois a opcao 1 apresentada é a posicao 0 do vetor printf("Valor de dia: "); scanf("%d", &dia); printf("Valor de mes: "); scanf("%d", &mes); printf("Valor de ano: "); scanf("%d", &ano); system("cls"); for(int i = 0; i <= qtdVoosCriados; i++) { if (((dia == voosCriados[i].data.dia ) && (mes == voosCriados[i].data.mes) && (ano == voosCriados[i].data.ano)) && ((origemOp == voosCriados[i].origem) && (destinoOp == voosCriados[i].destino))) { teste = 1; printf("\nOrigem: %s", locais[voosCriados[i].origem] ); printf("\nDestino: %s", locais[voosCriados[i].destino] ); printf("\nData: %d/%d/%d", voosCriados[i].data.dia, voosCriados[i].data.mes, voosCriados[i].data.ano); printf("\n=========================================="); } } if(teste == 0) { printf("Este voo nao existe"); } printf("\n\nAperte uma tecla"); getchar(); system("cls"); break; case 5: printf("Selecione a opcao de origem: "); // Pede informações para encontrar o voo for(int i = 0; i<15; i++) { // Percorre o vetor de locais, apresentando as opcões de origem printf("\n %d - %s",i+1, locais[i]); } printf("\nOpcao: "); scanf("%d", &origemOp); system("cls"); printf("Selecione a opcao de destino:"); do { // Laço para que a opcao de origem não seja a mesma de destino for(int i = 0; i<15; i++) { // Percorre o vetor de locais, apresentando as opcões de destino printf("\n %d - %s",i+1, locais[i]); } printf("\nOpcao: "); scanf("%d", &destinoOp); system("cls"); if(origemOp == destinoOp) { printf("Origem igual a destino. Escolha outro destino!\n"); } } while(origemOp == destinoOp); // Condicao do laco origemOp = origemOp - 1; // Decrementa uma unidade, pois a opcao 1 apresentada é a posicao 0 do vetor destinoOp = destinoOp - 1; // Decrementa uma unidade, pois a opcao 1 apresentada é a posicao 0 do vetor printf("Valor de dia: "); scanf("%d", &dia); printf("Valor de mes: "); scanf("%d", &mes); printf("Valor de ano: "); scanf("%d", &ano); system("cls"); for(int i = 0; i <= qtdVoosCriados; i++) { if (((dia == voosCriados[i].data.dia ) && (mes == voosCriados[i].data.mes) && (ano == voosCriados[i].data.ano)) && ((origemOp == voosCriados[i].origem) && (destinoOp == voosCriados[i].destino))) { teste = 1; existe = i; } } if(teste == 1) { if(voosCriados[existe].tamFila > 0) { printf("\nOrigem: %s", locais[voosCriados[existe].origem] ); printf("\nDestino: %s", locais[voosCriados[existe].destino] ); printf("\nData: %d/%d/%d", voosCriados[existe].data.dia, voosCriados[existe].data.mes, voosCriados[existe].data.ano); printf("\n=========================="); } else { printf("Nao ha passageiros na lista de espera"); printf("\n\nAperte uma tecla"); getchar(); system("cls"); } } if(teste == 0) { printf("Voo nao cadastrado"); printf("\n\nPressione uma tecla"); getchar(); system("cls"); } teste = 0; break; } op = menu(); } getchar();}
  23. O post de CiroboyBR em Preciso de uma ajuda para conseguir montar uma pilha, de livro foi marcado como solução   
    Acho que você deveria rever essa sua lista, reimplementar ela e só depois usar no seu programa.

    Não soluciona tudo, mas acho que essa função deveria ser assim
    int pesquisa(livro *PILHA) { //int codigo; int cod = 0; int contador = 0; printf("DIGITE O CODIGO DO LIVRO:"); scanf("%d", &cod); if(vazia(PILHA) == 1) { printf("NAO EXISTE NENHUM LIVRO!\n"); } else { printf("MOSTRANDO LIVRO CADASTRADO!\n"); livro *tmp = PILHA; while(!(tmp == NULL) && !(tmp -> codigo == cod)) { tmp = tmp -> prox; contador++; } printf("O LIVRO E: %d\n", tmp -> nome); if(tmp == NULL) { return -1; } else { return contador; } }}
  24. O post de CiroboyBR em Como escreva um algoritmo que forneça os números distintos de um vetor lido foi marcado como solução   
    1- Você pode ir adicionando os valores em um novo vetor que só receberá números distintos.

    2- Você pode ordenar o vetor e verificar se v != v[i+1], se for diferente você imprime.

    Fiz utilizando a primeira lógica:

     
    #include <stdio.h>#include <stdlib.h>#define tam 9int v[tam] = {3, 2, 1, 3, 4, 1, 5, 5, 2};int v_dis[tam];int i, j, repete = 0, n = 0;int main() { for (i = 0; i < tam; i++) { if (i == 0) { v_dis[n] = v[i]; n++; } else { repete = 0; //percorre o vetor distinto verificando se o valor v[i] existe no mesmo for (j = 0; j < n; j++) { if(v[i] == v_dis[j]) { repete++; } } //se o valor v[i] não foi encontrado no vetor distinto, então adiciona if (repete < 1) { v_dis[n] = v[i]; n++;// aumenta o tamanho do vetor distinto } } } printf("Vetor Distinto: "); for (i = 0; i < n; i++) printf("%d ", v_dis[i]); system("pause"); return 0;}
  25. O post de CiroboyBR em Valor da 'int main' não é puxado para o void de opção foi marcado como solução   
    passe o n como parâmetro na função

     
    #include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define Max 60struct ficha { char nome[30]; int mat,idade; float nota;};void op1(struct ficha v[60], int n);void op2(struct ficha v[60] , int n);void op3(struct ficha v[60], int n);int main() { struct ficha v[60]; int n,x; printf("Informe a quantidade de alunos:\n"); scanf("%i",&n); for(x=0; x<n; x++) { printf("Informe o nome do %i aluno: \n ",x+1); fflush(stdin); gets(v[x].nome); printf("Insira a matricula do %i aluno: \n",x+1); scanf("%d",&v[x].idade); fflush(stdin); printf("Informe a idade do %i aluno: \n",x+1); fflush(stdin); scanf("%d",&v[x].mat); printf("Informe a nota do %i aluno: \n",x+1); fflush(stdin); scanf("%f",&v[x].nota); system ("cls"); } { char op; do { system("cls"); printf("\n\n ==== MENU DE opções ====\n"); printf("1-Listar as informações dos alunos: \n"); printf("2-Organizar em ordem crescente (atraves da matricula): \n"); printf("3-Pesquisa atraves da matricula: \n"); printf("4-Sair: \n"); op = getch(); switch(op) { case '1': system("cls"); printf("Opcao 1: \n"); op1 (v, n); getch(); break; case '2': system("cls"); printf("Opcao 2: \n"); //op2 (v, n); getch(); break; case '3': system("cls"); printf("Opcao 3: \n"); //op3 (v, n); getch(); break; case '4': return 0; default: printf("Opcao invalida!\n"); } } while(op != 0); getch(); return 0; } return 0;}void op1(struct ficha v[60], int n) { int x; for(x=0; x<=n; x++) { printf("/n Nome do Aluno: %s",v[x].nome); printf("/n Idadde do Aluno: %d",v[x].idade); printf("/n Matricula do aluno: %d",v[x].mat); printf("/n Nota do Aluno: %2.2f",v[x].nota); }}

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