Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''C ''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. -Gostaria que o usuário pudesse digitar os números, só que eu não estou sabendo como pedir isso. Tem como me explicar?? Como posso fazer isso?? Obs: Explique de uma forma mais simples, pois eu estou começando a aprender agora. Esse programa é de dizer qual é o maior número. '-' #include <stdio.h> #include <stdlib.h> int main() { int i, v[5] = {1,2,3,4,5}; int m = v[0]; for (i=1; i<5; i++){ if (m < v) m = v; } printf ("Maior = %d\n",m); return 0; }
  2. Necessito de ajuda em vetores. Esse program é para colocar 10 números inteiros e ele tem q dizer qual é o maior, e tem que usar função para isso. Eu fiz assim, mas está dando erro. #include<stdio.h> void valor (int n_, int *v){ int i; scanf ("%d", n_); for (i=n_; 0<i<=n_; i++) } int main(){ int n,i,v [10]; printf ("Digite 10 números inteiros\n"); scanf ("%d", v[10]); valor (n,v); for (i=n; 0<i<n; i++){ printf ("O valor do maior número será %d", v[10]); } return 0; }
  3. boa tarde, alguém poderia me ajudar em um exercício.? 1. Faça um programa que cadastre funcionários. Para cada funcionário dever ser cadastrados nome e salário. Os dados devem ser armazenados em uma lista dinâmica simplesmente encadeada e ordenada, de forma decrescente, pelo salário do funcionário. Posteriormente, o programa deve mostrar: a) Cadastrar nome e salário; b) Listar todos os funcionários desordenados; c) Listar todos os funcionários ordenados; d) O nome do funcionário que tem o maior salário (em caso de empate mostrar todos); e) A média salarial de todos os funcionários juntos; f) A quantidade de funcionários com salário superior a um valor fornecido pelo usuário. Caso nenhum funcionário satisfaça essa condição, mostra mensagem. Construa um programa onde o usuário entre com 20 valores que deverão ser armazenados em uma pilha. Feito isso, o programa deverá apresentar os seguintes resultados: somatório de todos os valores ímpares, somatório de todos os valores pares, somatório de todos os valores que estão nas posições impares da pilha, somatório de todos os valores que estão nas posições pares.2. comecei assim, #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct funcionario{ float salario; //chave char nome[35]; struct funcionario *prox; }funcionario; funcionario* cria(float salario){ funcionario *novo; novo = (funcionario*) malloc(sizeof(funcionario)); novo->salario = salario; novo->prox = NULL; return novo; } funcionario *inserir(funcionario *cabeca, float salario) { funcionario *novo = NULL, *atual = NULL, *anterior = NULL; novo = cria(salario); if(novo!=NULL) { for(atual = cabeca; atual != NULL && (atual->salario < salario); atual = atual->prox) { anterior = atual; } if(!anterior) { //se for nulo insere no inicio da fila novo->prox = cabeca; cabeca = novo; } else { novo->prox = anterior->prox; anterior->prox = novo; } } else { printf("erro de alocacao"); } return cabeca; } int main (){ }
  4. Boa noite pessoal, eu queria saber como faço um programa que consegue exibir em tela um anagrama de qualquer palavra na linguagem em C. Detalhe, eu uso o compilador CODE BLOCKS! para programar em C. Eu encontrei um código em JAVA num outro fórum (o que não me satisfaz). Queria saber também como posso travar uma letra no mesmo lugar quando vou analisar o anagrama. Por exemplo: Quero todos os anagramas da palavra AMOR porém com a letra A travada no seu lugar! (ou a letra M no seu lugar, ou M no começo, ou as letras A e O travadas nos seus lugares ou no começo, etc...). AMOR AMRO AROM ARMO AORM AOMR Também quero que ele exiba quantos anagramas a palavra terá. Por exemplo no caso acima: Temos um A travado em seu lugar e também temos a permutação de 3 caracteres o que matematicamente é representado por 3! ou 3 Fatorial = 3 * 2 * 1 = 6 Anagramas. A frase "X" Anagramas é o que o programa deverá escrever! Agradeço desde Já! Eu vou deixar dois códigos que encontrei na internet porém que não estão compilando eles estão compactados no formato de arquivo .RAR e os arquivos com código fonte estão com a extensão .c, verifiquem o arquivo de texto para mais detalhes. Lembrem-se que eu estou usando o CODE BLOCKS! http://www.4shared.com/rar/o8LsOfxbce/Anagramas_Em_C.html http://www.mediafire.com/download/nf9vge8gpvhw9gd/Anagramas_Em_C!.rar
  5. Boa tarde pessoal, estou fazendo alguns exercícios para praticar, mas estou com um dúvida se é necessário usar estrutura de repetição nesse caso. 3 – Em um campeonato de futebol, cada time tem uma lista oficial de 23 jogadores. Cada time prepara uma lista contendo o peso e a idade de cada um dos seus jogadores. Os 40 times que participam do torneio enviam essas listas para o CPD da confederação. Faça um programa que apresente as seguintes informações:  O peso médio e a idade média de cada um dos times;  O peso médio e a idade média de todos os participantes. Segue meu código #include<stdio.h> #include<stdlib.h> main() { float peso_jogador=0, idade_jogador=0, peso_time=0, peso_total=0, idade_time=0, idade_total=0; printf("\nDigite a idade do jogador\n"); scanf("%f",& idade_jogador); printf("\nDigite o peso do jogador\n"); scanf("%f",&peso_jogador); printf("\nDigite a idade media do time\n"); scanf("%f",&idade_time); peso_time = (peso_time + peso_jogador); idade_time = (idade_time + idade_jogador); peso_total = (peso_total + peso_time); idade_total = (idade_total + idade_time); peso_time= (peso_time/23); idade_time= (idade_time/23); peso_total= (peso_total/(23*40)); idade_total= (idade_total/(23*40)); printf("\nPeso medio dos times e %0.2f\n", peso_time); printf("\nIdade media dos times e %0.2f\n", idade_time); printf("\nPeso medio dos participantes e %0.2f\n", idade_total); printf("\nIdade media dos participantes e %0.2f\n", idade_total); system("pause"); } Como eu preciso saber a média dos 23 jogadores, seria necessário utilizar while? Pois o exercício pede que eu calcule a média, mas eu estou solicitando informações de apenas um jogador no caso. Poderiam me esclarecer? OBRIGADA PESSOAL!
  6. Consegui fazer o código para fazer os cálculos, meu problema esta em como imprimir o resultado de acordo como o enunciado pede. Só consigo imprimir na hora que eu faço o calculo... O código que eu fiz: #include <stdio.h> #include <stdlib.h> int calcula_Taxas(float); int main() { int car=1; float horas; float taxa_total; printf("Bem vindo ao programa Garagem!! \n\n\n"); for (car=1; car<=3; car++){ printf("\n\nDigite o numero de horas para o carro %d: ", car); scanf("%f", &horas); calcula_Taxas(horas); } printf("\n\nTaxa Total: %f", taxa_total); return 0; } int calcula_Taxas(float x){ float taxa=2; float taxa_total=0; if (x<=3) taxa=2; if (x>=24) taxa=10; if ((x>=3) && (x<24)) taxa+=(x-3)*0.5; taxa_total+=taxa; printf("\n\n Horas: %f - Taxa: %f\n",x,taxa); return taxa_total; } O que eu tenho que alterar ou adicionar para conseguir imprimir os resultados consolidados igual o enunciado pede?
  7. Estou com duvida se esse código e simplesmente encadeado ou duplamente encadeado, alguém pode me ajudar? Isso é uma implementação de um Deque. #include <stdio.h> #include <stdlib.h> typedef struct TipoCelula *TipoApontador; typedef int TipoChave; typedef struct TipoItem { TipoChave Chave; } TipoItem; typedef struct TipoCelula { TipoItem Item; TipoApontador Prox; } TipoCelula; typedef struct TipoDeque { TipoApontador Frente, Tras; } TipoDeque; void IniciaDeque(TipoDeque *Deque) { Deque->Frente = (TipoApontador) malloc(sizeof(TipoCelula)); Deque->Tras = Deque->Frente; Deque->Frente->Prox = NULL; } int Vazio(TipoDeque Deque) { return (Deque.Frente == Deque.Tras); } void InsereUltimo(TipoItem x, TipoDeque *Deque) { if (Vazio (*Deque)) printf("\nO item %d foi o primeiro a ser inserido no Deque\n\n",x.Chave); else printf("\nO item %d foi inserido no final do Deque\n\n",x.Chave); Deque->Tras->Prox = (TipoApontador) malloc(sizeof(TipoCelula)); Deque->Tras = Deque->Tras->Prox; Deque->Tras->Item = x; Deque->Tras->Prox = NULL; } void InserePrimeiro (TipoItem x, TipoDeque *Deque) { TipoApontador novo; if (Vazio (*Deque)) { InsereUltimo(x, Deque); } else { novo = (TipoApontador) malloc(sizeof(TipoCelula)); novo -> Prox = Deque->Frente-> Prox; Deque->Frente-> Prox= novo; novo -> Item = x; printf("\nO item %d foi inserido no inicio do Deque\n\n",x.Chave); } }
  8. Boa Tarde a todos... eu queria criar uma função (fora do main), que perguntasse ao utilizador que ficheiro é que queria ler! já tentei várias coisas mas não estou a conseguir, se alguém me puder ajudar... e claro.. dentro desta função o ficheiro teria de ser lido..
  9. Guilherme.

    Ajuda

    /* Aplicativo para criar um baralho, atribuir Naipes às cartas 25/11/2015 */ #include <stdio.h> #define LINHA 3 //Define uma constante global para 'linha' #define COLUNA 12 //Define uma constante global para 'coluna' main(){ int inicia_cartas(); //Declara o escopo do método 'inicia_cartas' char cartas[LINHA][COLUNA]; //Cria um vetor bidimensional cartas = inicia_cartas(); // "[ERROR]ASSIGNMENT TO EXPRESSION WITH ARRAY" //Exibe cartas int i; for(i = 0; i <= LINHA; i++){ int j; for(j = 0; j <= COLUNA; j++){ printf("%c\n", cartas[j]); } } } char inicia_cartas(){ //[Error] conflicting types for 'inicia_cartas' char set_naipe(int); char set_card(int); char cartas[LINHA][COLUNA]; //cria vetor bidimensional local int i; for(i = 0; i <= LINHA; i++){ int j; for(j = 0; j <= COLUNA; j++){ cartas[j] = set_card(j) + set_naipe(i); //atribui carta e naipe } } return cartas; //[Warning] return makes integer from pointer without a cast; [Warning] function returns address of local variable [-Wreturn-local-addr] } char set_naipe(int i){ char *naipes[] = {"Copa", "Ouro", "Espada", "Paus"}; return *naipes; } char set_card(int j){ char *card[] = {"As de ", "Dois de ", "Tres de ", "Quatro de ", "Cinco de ", "Seis de ", "Sete de ", "Oito de ", "Nove de ", "Dez de ", "Valete de ", "Dama de ", "Rei de "}; return *card[j]; }
  10. Pessoal, sofri para conseguir fazer o programa abaixo, mas gostaria de saber se minha lógica esta correta ou se há um modo mais 'limpo, direto' ou simples de se fazer. Escreva um programa que imprima o seguinte losango. * *** ***** ******* ********* ******* ***** *** * #include <stdio.h> #include <stdlib.h> int main() { int i, tam, espaco, asterisco, x, y, metade; asterisco=1; espaco=tam=10; metade=tam/2; printf("Bem vindo ao losango\n\n\n"); for (x=0; x<metade; x++){ //Começa a parte superior for (i=1; i<=espaco; i++) // Da espaco para alinhamento do losango, a cada vez reduz um espaco printf(" "); espaco--; //Decrementa o espaco for (y=0;y<asterisco;y++) //Imprime o losango printf("*"); printf("\n"); // Pula linha asterisco+=2; // Adiciona 2 * para cada linha que for impressa } // Atualiza asterisco-=2; espaco++; // Começa a imprimir a parte inferior for (x=0; x<metade; x++){ asterisco-=2; // Reduz 2 * para cada linha do losangulo espaco++; // Aumenta o espaço para proxima linha for (i=0; i<espaco;i++) printf(" "); for (y=0; y<asterisco;y++) printf("*"); printf("\n"); } return 0; }
  11. Olá, estou com um problema: tenho que ler um arquivo de .csv que contem simulações de jogos entre dois times e/ou consultas ao ranking.Foi especificado que o numero de consultas é muito maior que o numero de simulações de jogos. Para não ficar muito custoso pensei em sempre inserir os times após cada simulação já de maneira ordenada, e se o time já tiver feito algum outro jogo, eu removo e insiro novamente ordenado. /**************************** Estruturas ****************************/ typedef int TipoChave; typedef struct TipoTime { char *nome; int classificacao; int pontos; }TipoTime; typedef struct TipoItem{ TipoChave Chave; TipoTime Time; }TipoItem; typedef struct TipoCelula *TipoApontador; typedef struct TipoCelula{ TipoItem Item; TipoApontador Prox; }TipoCelula; typedef struct TipoLista{ TipoApontador Primeiro, Ultimo; }TipoLista;/**************************** Funcoes ****************************/ void FLVazia (TipoLista *Lista); int Vazia(TipoLista Lista); void Insere (TipoItem x, TipoLista *Lista); void Retira (TipoApontador p, TipoLista *Lista, TipoItem *Item); void Imprime (TipoLista Lista); void ImprimeNoArquivoDeSaida (TipoLista Lista); int pesquisarTime(TipoLista *L , char *nome, TipoCelula *Celula); void inserirOrdenado(TipoLista Lista , TipoItem *Time); void atualizaVitoria(TipoLista Lista, TipoItem *Item, TipoApontador p); void atualizaEmpate(TipoLista Lista, TipoItem *Item, TipoApontador p);/*Função que faz uma lista vazia*/ void FLVazia (TipoLista *Lista){ Lista -> Primeiro = (TipoApontador) malloc (sizeof(TipoCelula)); Lista -> Ultimo = Lista -> Primeiro; Lista -> Primeiro -> Prox = NULL; } int Vazia(TipoLista Lista){ return (Lista.Primeiro == Lista.Ultimo); } /*Insere na lista*/ void Insere (TipoItem x, TipoLista *Lista){ Lista -> Ultimo -> Prox = (TipoApontador) malloc (sizeof (TipoCelula)); Lista -> Ultimo = Lista -> Ultimo -> Prox; Lista -> Ultimo -> Item = x; Lista -> Ultimo -> Prox = NULL; } /*Remove da lista*/ void Retira (TipoApontador p, TipoLista *Lista, TipoItem *Item){ TipoApontador q; if ( (Vazia(*Lista)) || (p == NULL) || (p -> Prox == NULL) ){ printf ("\nErro: lista vazia ou posicao nao existe!!\n"); return; } q = p -> Prox; *Item = q -> Item; p -> Prox = q -> Prox; if (p -> Prox == NULL){ Lista -> Ultimo = p; } free (q); } /*Imprime a lista*/ void Imprime (TipoLista Lista){ TipoApontador Aux; Aux = Lista.Primeiro -> Prox; while (Aux != NULL){ printf ("%d \n" , Aux -> Item.Chave); Aux = Aux -> Prox; } } /*void ImprimeNoArquivoDeSaida (TipoLista Lista){ TipoApontador Aux; Aux = Lista.Primeiro -> Prox; while (Aux != NULL){ fprintf (ArqSaida,"%d, \n" , Aux -> Item.Chave); Aux = Aux -> Prox; } }*/ //pesquisa se já existem o time na lista. int pesquisarTime(tlista *L,char *nome, TipoCelula *Celula){ TipoCelula *p; TipoTime *Time; while (p !=NULL){ Time = L->nome; if (strcmp(nome,Time->nome)==0){ return 1; } } return 0; } /*Esta função faz a inserção na lista de maneira ordenada*/ void inserirOrdenado(TipoLista Lista **p, *Time) { lista *atual, *novo, *anterior; int num; novo = (lista *) malloc(sizeof(lista)); atual = *p; anterior = NULL; novo->valor = Time; if(atual == NULL){ novo->prox = NULL; *p = novo; } else{ while(atual != NULL && atual->valor < num){ anterior = atual; atual = atual->prox; } novo->prox = atual; if(anterior == NULL){ *p = novo; } else{ anterior->prox = novo; } } } /*A função recebe o time vitorioso, copia para um time temporário. chama a função Retira, para remover o item da lista soma os 3 pontos da vitória e insere novamente de maneira ordenada*/ void atualizaVitoria(TipoLista Lista, TipoTime Time, TipoApontador p){ TipoItem ItemTemp; //Copia o time para um TipoTime temporário. ItemTemp.Time.nome = Item.Time.nome; ItemTemp.Time.classificacao = Item.Time.classificacao; ItemTemp.Time.pontos = Item.Time.pontos+3;//Ponteiro ou conteudo ? Retira ( p, *Lista, *Item); inserirOrdenado( Lista **p, *ItemTemp); } /*A função recebe os times que empataram(um por vez), copia para um time temporário. chama a função Retira, para remover o item da lista soma o 1 ponto da vitória e insere novamente de maneira ordenada*/ void atualizaEmpate(TipoLista Lista, TipoItem *Item, TipoApontador p){ TipoItem ItemTemp; ItemTemp.Time.nome = Item.Time.nome; ItemTemp.Time.classificacao = Item.Time.classificacao; ItemTemp.Time.pontos = Item.Time.pontos+3;//Ponteiro ou conteudo ? Retira ( p, *Lista, *Item); inserirOrdenado( Lista **p, *ItemTemp); }int main(){ /************************** VARIAVEIS *****************************/ char buffer[100]; int i = 0; int flag = 1; TipoLista Campeonato; TipoItem ItemAux; char *Acao; char *TipoDaAcao; char *NomeDoTime1; char *NomeDoTime2; /************************ LEITURA ARQUIVOS *******************************/ FILE *ArqEntrada; // leitura dos comandos FILE *ArqSaida; // resultado dos comandos FILE *ArqRanking; // arquivo do ranking ordenado ArqEntrada = fopen("entrada.csv","r"); ArqSaida = fopen("saida.csv", "w"); ArqRanking = fopen("ranking.csv","r"); if (ArqEntrada == NULL) { printf ("\nERRO: Arquivo de entrada incorreto!"); } if (ArqSaida == NULL){ printf("\nERRO: Arquivo de saida incorreto!"); } if (ArqRanking == NULL){ printf("\nERRO: Ranking nao encontrado. Sera gerado um novo."); ArqRanking = fopen("ranking.csv","w"); flag = 0; } /************************ CARREGANDO SIMULAÇÕES ANTERIORES *******************************/ if (flag==1){ fgets (buffer, 100, ArqRanking); while (!feof(ArqRanking)){ printf ("\n"); ItemAux.Time.nome = atoi (strtok (buffer, ",")); printf ("\nNome: %s", ItemAux.Time.nome); ItemAux.Time.classificacao = atoi (strtok (buffer, ",")); printf ("\nClassificacao: %d", ItemAux.Time.classificacao ); ItemAux.Time.pontos = atoi(strtok (NULL, ",")); printf ("\nPontuacao: %d", ItemAux.Time.pontos); fgets (buffer, 100, ArqRanking); } } /************************ LEITURA DA ENTRADA *******************************/ while (!feof(ArqEntrada)){ Acao = strtok (NULL, ","); if (strcmp("CONSULTA", Acao)==0){ TipoDaAcao = atoi (strtok (buffer, ",")); NomeDoTime1 = atoi (strtok (buffer, ",")); //if (pesquisarTime(&Campeonato, *NomeDoTime1, ItemAux )==0){ if (1){ printf("/nERRO: Time nao encontrado para consulta."); } if (strcmp("PONTUACAO", Acao)==0){ fprintf(ArqSaida, "%s,%s,%d", TipoDaAcao, NomeDoTime1, ItemAux.Time.pontos); } else if (strcmp("RANKING", Acao)==0){ fprintf(ArqSaida, "%s,%s,%d", TipoDaAcao, NomeDoTime1, ItemAux.Time.classificacao); } } else if(strcmp("VITORIA", Acao)==0){ NomeDoTime1 = atoi (strtok (buffer, ",")); NomeDoTime2 = atoi (strtok (buffer, ",")); if (1){//*pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )*/){ atualizaVitoria(Campeonato, *Item, p); } else if(1){ //(pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )==0){ //Como somar os 3 pontos para inserir ordenado? inserirOrdenado(Campeonato p, *Time); } if (1){ //(pesquisarTime(*NomeDoTime2, Campeonato, ItemAux )==0){ inserirOrdenado(Campeonato p, *Time); } /* else if(strcmp("EMPATE", Acao)==0){ NomeDoTime1 = atoi (strtok (buffer, ",")); NomeDoTime2 = atoi (strtok (buffer, ",")); /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. if (pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )){ atualizaEmpate(Campeonato, *Item, p); } /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. else if (pesquisarTime(*NomeDoTime1, Campeonato, ItemAux )==0){ //Como somar o 1 ponto para inserir ordenado? inserirOrdenado(Campeonato p, *Time); } /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. if (pesquisarTime(NomeDoTime2, Campeonato, ItemAux )){ atualizaEmpate(Campeonato, *Item, p); } /* pesquisarTime retorna 1 se o time for encontrado e 0 se não. else if (pesquisarTime(*NomeDoTime2, Campeonato, ItemAux )==0){ //Como somar o 1 ponto para inserir ordenado? inserirOrdenado(Campeonato p, *Time); } */ } else{ printf("/nErro: Primeiro argumento invalido."); } } /************************ IMPRIME RANKING *******************************/ ImprimeNoArquivoDeSaida(Campeonato); fclose(ArqEntrada); fclose(ArqSaida); fclose(ArqRanking); return 0; }Fiz o código desta maneira porém estou com muitas duvidas quanto as passagens dos parâmetros para as funções. Vocês podem me ajudar ? Obrigado
  12. Pessoal, estou tentando fazer o exercício abaixo, consegui fazer para 5 dígitos, mas eu gostaria de que ele fizesse o calculo para qualquer quantidade de dígitos. Poderiam me indicar uma forma de fazer? #include <stdio.h> #include <stdlib.h> int main() { int num,a,b,c,d,e,cont=0; printf("\n\nNumeros iguais a 7!!!\n\n\n"); printf("Digite um numero de 5 digitos: "); scanf("%d", &num); a = num/10000; if (a==7) cont++; b = (num%10000)/1000; if (b==7) cont++; c = (num%1000)/100; if (c==7) cont++; d = (num%100)/10; if (d==7) cont++; e = (num%10); if (e==7) cont++; printf("Quantidade de digitos iguais a 7: %d\n",cont); system("pause"); return 0; }
  13. Bom dia a todos. Procuro alguém disponível para fazer código em C dos seguintes exercicios, (valor a combinar até quarta a noite dia 25/11): 1) Fazer um programa em C que organiza uma lista de 18 posições composta de uma estrutura com projeto(10 caracteres), destino(10 caracteres) e saldo(10 caracteres). O programa deve ordenar essa lista por destino+saldo usando quicksort e permitir inserção na primeira posição e remoção na ultima posição da lista ordenada. Deve-se sempre exibir a lista ordenada após as operações 2) Fazer um programa em C que organiza uma fila de 17 posições composta de uma estrutura com nome(15 caracteres), origem (1 caracter) e telefone (inteiro). O programa deve ordenar essa fila por origem+telefone usando heapsort e permitir inserção e remoção na fila ordenada. Deve-se sempre exibir a fila ordenada após as operações TODAS AS ENTRADAS DE DADOS DEVEM SER VIA TECLADO (scanf, gets, getche etc)
  14. Pessoal, preciso de uma ajudinha de vocês :/ Estou fazendo um programinha em C, no qual o usuário insere as informações do veículo, como: código, modelo e marca. Depois de inserir os dados, ao digitar a opção para se exibir os veículos na fila, o código sai certo, porém as informações armazenadas na fila saem zeradas, o que será que está acontecendo? Aqui está o source code: #include<stdio.h> #include<stdlib.h> #include <locale.h> typedef struct type_car{ int cod; char marca[20]; char modelo[20]; char cor[20]; }car; car carro; typedef struct Node{ int num; struct Node *prox; }node; int tam; int menu(void); void opcao(node *FILA, int op); void inicia(node *FILA); int vazia(node *FILA); node *aloca(); void insere(node *FILA); node *retira(node *FILA); void exibe(node *FILA); void libera(node *FILA); int main(void){ node *FILA = (node *) malloc(sizeof(node)); if(!FILA){ printf("Sem memoria disponivel!\n"); exit(1); }else{ inicia(FILA); int opt; do{ opt=menu(); opcao(FILA,opt); }while(opt); free(FILA); return 0; } } int menu(void){ setlocale(LC_ALL, "Portuguese"); int choose; printf("\n\t\t\t\tEscolha a opção\n"); printf("1 - Remover todos os carros\n"); printf("2 - Exibir todos os carros na fila\n"); printf("3 - Adicionar carro a fila\n"); printf("4 - Remover carro da fila\n"); printf("0 - Sair do programa\n"); printf("\nOpção: "); scanf("%d", &choose); system("cls"); return choose; } void opcao(node *FILA, int op){ node *tmp; switch(op){ case 0: libera(FILA); break; case 1: libera(FILA); inicia(FILA); break; case 2: exibe(FILA); break; case 3: insere(FILA); break; case 4: tmp= retira(FILA); if(tmp != NULL){ printf("Carro removido: %3d\n\n", tmp->num); libera(tmp); } break; default: printf("Comando invalido!\n\n"); } } void inicia(node *FILA){ FILA->prox = NULL; tam=0; } int vazia(node *FILA){ if(FILA->prox == NULL) return 1; else return 0; } node *aloca(){ node *novo=(node *) malloc(sizeof(node)); if(!novo){ printf("Sem memória disponivel!\n"); exit(1); }else{ printf("Código do carro: "); scanf("%d", &carro.cod); fflush(stdin); printf("Modelo do carro: "); scanf("%s", &carro.modelo); fflush(stdin); printf("Marca do carro: "); scanf("%s", &carro.marca); fflush(stdin); printf("Cor do carro: "); scanf("%s", &carro.cor); fflush(stdin); return novo; } } void insere(node *FILA){ node *novo=aloca(); novo->prox = NULL; if(vazia(FILA)) FILA->prox=novo; else{ node *tmp = FILA->prox; while(tmp->prox != NULL) tmp = tmp->prox; tmp->prox = novo; } tam++; } node *retira(node *FILA){ if(FILA->prox == NULL){ printf("Não a carros em espera!\n"); return NULL; }else{ node *tmp = FILA->prox; FILA->prox = tmp->prox; tam--; return tmp; } } void exibe(node *FILA){ if(vazia(FILA)){ printf("Sem carros!\n\n"); return ; } node *tmp; tmp = FILA->prox; printf("Fila :"); while( tmp != NULL){ printf("%5d", tmp->num); tmp = tmp->prox; } printf("\n "); int count; for(count=0 ; count < tam ; count++) printf(" ^ "); printf("\nOrdem:"); for(count=0 ; count < tam ; count++) printf("%5d", count+1); printf("\n\n"); } void libera(node *FILA){ if(!vazia(FILA)){ node *proxNode, *atual; atual = FILA->prox; while(atual != NULL){ proxNode = atual->prox; free(atual); atual = proxNode; } } } Alguém poderia me explicar o que fiz de errado e uma possível solução :)
  15. Bom dia! Poderia me ajudar estou começando agora, não estou conseguindo que a média fica armazenada no vet3 e imprima o resultado; #include<stdio.h> int main(){ int vet1[1], vet2[1], vet3[1]; int i; for(i=0; i<2; i++){ printf("Qual a primeira nota do %d aluno:\n",i+1); scanf("%d", &vet1); } for(i=0; i<2; i++){ printf("Qual a segunda nota do %d aluno:\n",i+1); scanf("%d", &vet2); } for(i=0; i<2; i++){ vet3 = vet1 + vet2 / 2; printf("A media dos alunos e: %d\n"),vet3; } system ("Pause"); return 0; } Obrigado!!!
  16. Pessoas, boa noite Eu estou com um problema, tenho um programa escrito em C, e eu preciso ler 5 arquivos de texto e com base nas informações desses arquivos, preciso criar um outro arquivo que irá compor os 5 arquivos. O problema é que eu não consigo jogar as informações desses 5 arquivos em um só. Vou postar o código que faz a leitura para que vocês entendam melhor. void le_arq(Produto vetor[50]) { char nomearq[20]; int i=1, j, k, g=0; setlocale(LC_ALL, "Portuguese"); FILE *arq; // ARQUIVO FINAL FILE *arqi[5]; // ARQUIVO INCIAL for (y=0; y<=4;y++){ printf("Digite o nome do arquivo da %d estação para ser aberto: ", y); scanf("%s", nomearq); arqi[y] = fopen(nomearq,"r"); if(arqi[y] == NULL) { printf("Arquivo não existe!\n\n"); printf("Pressione ENTER para voltar ao menu de opções...\n"); getch(); } else { printf("Arquivo aberto com sucesso!\nAqui está a impressão de todos os itens do arquivo.\n\n"); aberto = 1; fscanf(arqi[y],"\t\t%d", &vetor[0].estacoes[0]); for(k = 1; k < 9; k++) { fscanf(arqi[y],"\t%d", &vetor[0].estacoes[k]); } fscanf(arqi[y],"\t%d\n", &vetor[0].estacoes[9]); while(!feof(arqi[y])) { fscanf(arqi[y],"%s\t", vetor[i].nome_r); printf("%s\t", vetor[i].nome_r); fscanf(arqi[y],"%f\t", &vetor[i].residuos[y]); printf("%.2f\t", vetor[i].residuos[y]); fscanf(arqi[y],"%f\t", &vetor[i].mcubic[y]); printf("%.2f\t\n", vetor[i].mcubic[y]); i++; cont++; } printf("\n\nPressione ENTER para voltar ao menu de opções...\n"); getch(); } } arq = fopen("final.txt", "w"); while(g<=4) { fprintf(arq, "%s\t", vetor[i].nome_r); for(j = 0; j <= 4; j++) { fprintf(arq, "%.2f\t", vetor[i].residuos[g]); } for(j = 0; j <= 3; j++) { fprintf(arq, "%.2f\t", vetor[i].mcubic[g]); } fprintf(arq, "%.2f\n", vetor[i].mcubic[4]); g++; i++; cont++; } }Estou conseguindo printar os dados, só preciso coloca-los dentro de um outro arquivo... Obs: se não encontrarem alguma variavel declarada, ela está declarada globalmente, e eu só coloquei a função que lê esses arquivos, pois, preciso fazer alguns procedimentos com esse arquivo final que será gerado
  17. Bom dia pessoal, estou tentando fazer este exercício aqui: Faça um programa que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e o menor valor do conjunto. - Para encerrar a entrada de dados, deve ser digitado o valor zero; - Para valores negativos, deve ser enviada uma mensagem; - Esses valores (zero e negativos) não entraram nos cálculos. Já fiz o meu código que estou enviando abaixo, entretando ele está dando erro! O programa até compila, mas não aparece as informações! O que devo fazer? ): Segue meu código comentado: #include <stdio.h> #include <stdlib.h> main () { int numero_entrada=1,numero_positivo=1,numero_negativo=0; // aqui eu dei valor as minhas variaveis while (numero_entrada != 0 && numero_entrada < 0) // como pede no enunciado se for numero negativo ou 0 { printf ( "\nDigite um numero :" ); // pedir para o usuario digitar um numero scanf ( "%d", &numero_entrada );// recebendo o número if (numero_entrada>=numero_positivo) // se o meu numero for maior ou igual a 1 ele irá mostrar o maior numero digitado { printf("o maior numero e %d",numero_positivo);// resultado na tela } else if (numero_entrada<=numero_negativo) // se for menos ou igual a 0 ele irá mostrar o menos numero { printf("o maior numero e %d",numero_negativo);// resultado na tela } return 0; } }
  18. Estou criando um programa de criptografia de um exercício do livro do Deitel: Já fiz o código de criptografia, mas tenho dois problemas, os numeros de 0 à 3 geram dois digitos, o que atrapalhará na descriptografia. E e também não sei como descriptografar, como inverter a função de resto de divisão: a = ((a+7)%10+7); Abaixo o que eu já fiz de código: #include <stdio.h> #include <stdlib.h> // ler um inteiro de 4 digitos // substituir cada digito por (digito+7)%10+(7) // trocar o primeiro pelo terceiro e o segundo pelo quarto // Imprimir o inteiro criptografado // Criar um que descriptografe void criptografa(){ int num,a,b,c,d; printf("\nDigite o numero de 4 digitos que sera criptografado: "); scanf("%d", &num); //Inicia Criptografia a = num/1000; b = (num%1000)/100; c = (num%100)/10; d = num%10; printf("separado: %d %d %d %d\n", a,b,c,d); a = ((a+7)%10+7); b = ((b+7)%10+7); c = ((c+7)%10+7); d = ((d+7)%10+7); printf("Ordenado: %d %d %d %d\n", a,b,c,d); printf("Descriptografado: %d\n", num); printf("Criptografado: %d%d%d%d\n", c,d,a,b); system("pause"); } void descriptografa() { // Inverter equacao a = ((a+7)%10+7) } void menu() { int op; do{ printf("\n\n Criptografia!!! \n\n"); printf("1 - Criptografar\n"); printf("2 - Descriptografar\n"); printf("3 - Sair\n\n"); printf("Escolha a opcao desejada:"); scanf("%d", &op); switch(op){ case 1: criptografa(); break; case 2: descriptografa(); break; case 3: break; default: break; } }while(op!=3); } int main() { menu(); system("pause"); return 0; } Alguém consegue me dar uma luz?
  19. magicericxd

    AJUDA EM C

    GALERA PRECISO IMPLEMENTAR O MALDITO DO QUICKSORT E INSERTSORT,TENTEI COLOCAR ALGUNS MÉTODOS MAS NÃO CONSEGUI... FIZ ISSO ATÉ AGORA. #include<stdio.h>#include<stdlib.h>#include<conio.h>#define t 8 int main () { int v[t],x = 0,y = 0,aux = 0,min =0,op,p=0,r=0; for( x = 0; x < t; x++ ) { printf("Entre com um inteiro para vetor[%d]: ",x); scanf("%d",&aux); v[x] = aux; } printf("Escolha uma opcao: "); printf("\n\nBubble Sort : 1\n"); printf("\n\nSelect Sort : 2\n"); printf("\n\nQuick Sort : 3\n"); printf("\n\nInsert Sort : 4\n"); scanf("%d",&op); switch(op){ case 1://BubbleSort for( x = 0; x < t; x++ ) { for( y = x + 1; y < t; y++ ) { if ( v[x] > v[y] ) { aux = v[x]; v[x] = v[y]; v[y] = aux; } }} printf("\n Elementos ordenados:"); for( x = 0; x < 8; x++ ){ printf("\n %d",v[x]); // exibe o vetor ordenado} break;case 2: //SelectSort for (x = 0; x < t; x++) { min = x;for (y = (x+1); y < t; y++) { if(v[y] < v[min]) min = y; } if (x != min) { aux = v[x]; v[x] = v[min]; v[min] = aux; } } printf("\n Elementos ordenados:"); for( x = 0; x < 8; x++ ){ printf("\n %d",v[x]); // exibe o vetor ordenado}break;case 3: break;case 4: break; } }
  20. Bom dia pessoal!!Estou no primeiro semestre de Ciências da Computação e estou fazendo algumas atividades em Linguagem C. Entretanto, estou com dificuldade nesse exercício:Faça um programa que receba como entrada, uma lista de números positivos ou negativos, finalizando as entradas com o número zero e forneça como saída, a soma dos números positivos, soma dos números negativos e a soma das duas somas parciais. Pelo que eu entendi eu devo solicitar numeros positivos ou negativos ao usuários, se ele digitar o número 0 devo finalizar o programa, somar os positivos e negativos e mostrar o resultado deles. Mas, estou com muita dificuldade para resolver, estamos no módulo while, então preciso resiolver utilizando while ou do while.Tentei desenvolver o programa e ficou mais ou menos assim: #include <stdio.h> #include <stdlib.h> main () { int contador=0,resultado,n1; contador=0; while (contador<=5) { printf("digite um numero :"); scanf("%d",&n1); contador ++; } if (n1!=0) { resultado=(n1+n1+n1+n1+n1); printf("o resultado e %d",resultado); } else { printf("encerrando programa"); } system ("pause"); } Observações: Quando eu vou digitar 0 o programa não se encerra, queria saber o porquê disso.Lembrando que eu sou iniciante em programação e gostaria que vocês, experientes nisso me dessem dicas ou clareassem a minha cabeça para que eu possa resolver esse problema e entender.Obrigada pessoal :)
  21. Visitante

    Ajuda com laço do while

    Aqui estou eu de novo...não consigo fazer meu programa apontar um erro e repetir até que a condição esteja correta...já tentei while origem menor que 1 e maior que 5, etc...o que acontece é que meu código não passa dai. mesmo com as condições corretas...quando o getch é 1, 2, 3 4 ou 5, ou qualquer outro numero ele repete o laço...agradeço desde já! //Laço de Erro 1 do { //Aqui o Programa pergunta a origem do passageiro printf("\nDe onde voce esta partindo? [1]curitiba, [2]florianopolis, [3]saobento, [4]camboriu ou [5]matinhos?\n"); origem=getch(); switch(origem){ case '1': origem=1; break; case '2': origem=2; break; case '3': origem=3; break; case '4': origem=4; break; case '5': origem=5; break; } }while(origem != 1 || origem != 2 || origem != 3 || origem !=4 || origem != 5);
  22. Boa noite galera,estou precisando de ajuda com C métodos de ordenação,preciso resolver o seguinte exercicio mas está complicado ^^ Elaborar um programa em C que faça a carga de um vetor com 8 posições de valores inteiros e positivos. Permitir escolher um dos métodos de ordenação de dados (1-inserção, 2-bubble sort, 3-quick sort, 4-seleção) fiz isso até agora #include <stdio.h> #include <stdlib.h> #define TAM 8 int main() { int vetor[TAM], i = 0, y = 0, aux = 0; for( i = 0; i < TAM; i++ ) { printf("Entre com um inteiro para vetor[%d]: ",i); scanf("%d",&aux); vetor= aux; } for( i = 0; i < TAM; i++ ) { for( y = i + 1; y < TAM; y++ ) // sempre 1 elemento à frente { // se o (x > (x+1)) então o x passa pra frente (ordem crescente) if ( vetor > vetor[y] ) { aux = vetor; vetor = vetor[y]; vetor[y] = aux; } } } // fim da ordenação // exibe elementos ordenados printf("Elementos ordenados: \n"); for( i = 0; i < TAM; i++ ) { printf(" \n vetor[%d]=%d \n\n",i,vetor); // exibe o vetor ordenado } system("PAUSE"); }
  23. E aí pessoal beleza, eu estou desenvolvendo um programa em C que simula uma partida de futebol para 7 jogadores e já consegui terminar o jogo e no caso de haver um vencedor, o programa faz tudo bem mas o problema está em caso de empate entre 4 jogadores jogadores por exemplo: desenvolvi uma função que serve para listar os 7 jogadores por números de golo e /*Função para listar quantidade de remates entre jogadores*/ void listar_jogador_num_golos_jogo(void) { int s; puts("\n\t\t--- Estatisticas de Golos dos Jogadores no Jogo ---"); //para todos os jogadores for (s = 0; s < qt_jogador_jogo; s++) { printf("\t\t\t Jogador %d: %d golo(s)\n", ptr_campo_jogo->jogadores[s].num_jogador, ptr_campo_jogo->jogadores[s].estatistica.qt_golos_marcados); } sleep(1); //determina o vencedor ou prolongamento em caso de empate definir_vencedor_ou_empate_jogo(); } faz exactamente o que pretendido pelo enunciado, tal como mostra a figura e desenvolvi uma outra função que determina o jogador vencedor ou em caso de empate, o jogador seleccionado irá fazer parte do prolongamento /*Função que determina o vencedor ou prologamento em caso de empate*/ void definir_vencedor_ou_empate_jogo(void) { int j, k, m, t; contador_jogadores_jogo = 0; max_golo_jogo = 0; puts("\n Determinar o jogador vencedor ou em caso empate, irá ao prolongamento...\n"); sleep(1); //para todos os jogadores for (j = 0; j < qt_jogador_jogo; j++) { //se o jogador listado tiver mais golos marcados do que max if (ptr_campo_jogo->jogadores[j].estatistica.qt_golos_marcados > max_golo_jogo) { //max = golos do jogador max_golo_jogo = ptr_campo_jogo->jogadores[j].estatistica.qt_golos_marcados; //contador será igual a um contador_jogadores_jogo = 1; //se tiver os mesmo golos que max } else if (ptr_campo_jogo->jogadores[j].estatistica.qt_golos_marcados == max_golo_jogo) { //incrementa o contador contador_jogadores_jogo++; } }//se contador for igual a um if (contador_jogadores_jogo == 1) { //para todos os jogadores for (k = 0; k < qt_jogador_jogo; k++) { //se o jogador listado tiver mais do que max golos if (ptr_campo_jogo->jogadores[k].estatistica.qt_golos_marcados == max_golo_jogo) { //o jogador iterado é o vencedor printf(">> Jogador %d é o VENCEDOR marcando %d golo(s)...\n\n", ptr_campo_jogo->jogadores[k].num_jogador, ptr_campo_jogo->jogadores[k].estatistica.qt_golos_marcados); sleep(1); } }//caso contrário (contador diferente de um) } else { //iterar todos os jogadores for (m = 0; m < qt_jogador_jogo; m++) { //se os golos do jogador listado for igual a max if (ptr_campo_jogo->jogadores[m].estatistica.qt_golos_marcados == max_golo_jogo) { //o jogador iterado faz parte do prolongamento printf(">> Jogador %d marcou %d golo(s) e vai para PROLONGAMENTO...\n", ptr_campo_jogo->jogadores[m].num_jogador, ptr_campo_jogo->jogadores[m].estatistica.qt_golos_marcados); sleep(1); } } puts("\n\t\t--- Lista de Jogadores para Prolongamento em situação de empate ---"); //iterar todos os jogadores for (t = 0; t < qt_jogador_jogo; t++) { //se os golos do jogador listado for igual a max if (ptr_campo_jogo->jogadores[t].estatistica.qt_golos_marcados == max_golo_jogo) { //o jogador iterado faz parte da lista de jogadores para prolongamento listar_jogadores_para_prolongamento(ptr_campo_jogo->jogadores[t].num_jogador, contador_jogadores_jogo); } } } } e até aqui tudo bem, e o programa mostra o resultado pretendido, tal como mostra na figura em baixo e o problema começa aqui em usar apenas esses jogadores seleccionados? para iniciar o prolongamento... /*Função*/ void iniciar_prolongamento(void) { int j; srand(time(NULL)); int recebe_bola = 1 + rand() % qt_jogador_jogo; for (j = 0; j < qt_jogador_jogo; j++) { if ((recebe_bola == ptr_campo_jogo->jogadores[j].estatistica.qt_golos_marcados) &&(ptr_campo_jogo->jogadores[j].estatistica.qt_golos_marcados == max_golo_jogo)) { printf("\nMostra o jogador %d...\n", recebe_bola); } sleep(1); } }quando compilo, mostra todos os jogadores, e já pensei em guardar essa lista de jogadores para prolongamento em um apontador externo e também pensei em usar um vetor campo com 3 dimensoes guardar jogadores, para jogo, prolongamento e penalti struct CAMPO campos[3]; /*campo de jogo, prolongamento e penalti*/ struct CAMPO *ptr_campo_jogo; /*apontador para campo*/alguma sugestão?
  24. URGENTE. Bom, estou tendo dificuldade de finalizar o este algoritmo, pois a funcao 3 do menu não funciona perfeitamente, pois ela le a entrada de dado mas não relaciona com o dado exato que esta armazenado dentro da lista feita pelo struct. O objetivo do programa e criar um programa que se utilize-se de struct para armazenamentos de dados, que contenha as funções cadastro(produto, valor e código), imprima a lista, busque por nome de produto para uma loja de materiais. esta e a parte q não consigo resolver: void imp_cod(){ fflush(stdin); int i; char aux[80]; printf("DIGITE O NOME DO PRODUTO A BUSCAR"); scanf("%s",&aux[80]); for(int i=0;i<qte;i++){ if(aux[80]==lj[qte].nome_p); printf("COD:%dNOME:%sR$%.2f",lj.cod_e,lj.nome_p,lj.valor); } } Este e o código "completo": #include<iostream> #include<locale.h> struct estoque{ int cod_e; char nome_p[80]; float valor; }; estoque lj[50]; int qte=0; void cadastro(){ fflush(stdin); printf("\t+------------------------------------------------------+\n"); printf("\t DIGITE O CODIGO DO PRODUTO "); scanf("\t%d",&lj[qte].cod_e); fflush(stdin); printf("\t+------------------------------------------------------+\n"); printf("\t DIGITE O NOME DO PRODUTO "); gets(lj[qte].nome_p); fflush(stdin); printf("\t+------------------------------------------------------+\n"); printf("\t DIGITE O VALOR UNITARIO DO PRODUTO R$"); scanf("%f",&lj[qte].valor); printf("\t+------------------------------------------------------+\n"); fflush(stdin); qte++; } void imp_es(){ fflush(stdin); for(int i; i<qte; i++){ printf("\n\t+------------------------------------+\n"); printf("\tCODIGO: %d\n\tNOME: %s\n\tVALOR: R$%.2f\n", lj.cod_e, lj.nome_p, lj.valor); printf("\t+------------------------------------+\n"); } } void imp_cod(){ fflush(stdin); int i; char aux[80]; printf("DIGITE O NOME DO PRODUTO A BUSCAR"); scanf("%s",&aux[80]); for(int i=0;i<qte;i++){ if(aux[80]==lj[qte].nome_p); printf("COD:%dNOME:%sR$%.2f",lj.cod_e,lj.nome_p,lj.valor); } } int menu(int op){ system("cls"); printf("\t+------------------------------------------------------+\n"); printf("\t| MENU |\n"); printf("\t+------------------------------------------------------+\n"); printf("\t| 1 - CADASTRAR PRODUTO |\n"); printf("\t| 2 - ESTOQUE |\n"); printf("\t| 3 - BUSCAR PRODUTO |\n"); printf("\t| 4 - SAIR |\n"); printf("\t+------------------------------------------------------+\n"); printf("\t| DIGITE A OPERAÇÂO |\n"); printf("\t+------------------------------------------------------+\n"); scanf("%d",&op); return(op); } main(){ setlocale(LC_ALL,""); int op; printf("\t+------------------------------------------------------+\n"); printf("\t| BEM VINDO AO CONTROLE DE ESTOQUE |\n"); printf("\t+------------------------------------------------------+\n"); printf("\t| APERTE QUALQUER TECLA PARA CONTINUAR |\n"); printf("\t+------------------------------------------------------+\n"); system("pause"); do{ op=menu(op); if(op==1){ cadastro();} else if(op==2){ imp_es(); system("pause"); } else if(op==3){ imp_cod(); system("pause"); } else if(op==4){ system("cls_clear"); return 0;} }while(op!=4); system("pause"); } Agradeço se alguém puder ajudar :D
  25. Ola pessoal, Estou aprendendo C através do site: http://computer.howstuffworks.com/c10.htm Não entendi como funciona o final da função. for (x=0; x < MAX-1; x++) for (y=0; y < MAX-x-1; y++) if (a[y] > a[y+1]) { t=a[y]; a[y]=a[y+1]; a[y+1]=t; } /* print sorted array */ printf("--------------------\n"); for (i=0; i < MAX; i++) printf("%d\n",a[i]);No meu entendimento, ele não faria o for pois nunca entraria no if. Porém quando executo, ele ordena corretamente... eu realmente não entendi como ele executa o if sendo que na minha visão: a[y] jamais será maior que a[y+1] Alguém consegue me explicar essa parte?
×
×
  • Criar Novo...