Ir ao conteúdo
  • Cadastre-se

jpaulofsa

Membro Pleno
  • Posts

    43
  • Cadastrado em

  • Última visita

Reputação

21
  1. @devair1010 muito obrigado! Às vezes parece que nunca vou aprender programação...não sei se esse pensamento no início é algo comum ou se é devido a linguagem C ser difícil...
  2. Nome: Gabi Idade: 39 Nome: Pedro Idade: 38 Nome: Jualiano Idade: 13 arquivo: nomesidades.txt
  3. #include <stdio.h> #include <stdlib.h> int main() { FILE *p; char nome[27], idade[5], arq_nome[30]; char c; printf("\nArquivo de entrada: "); gets(arq_nome); if ((p = fopen(arq_nome, "r")) == NULL) { printf("\nErro ao abrir o arquivo %s!", arq_nome); exit(1); } printf("\nImprimindo dados do arquivo: %s\n", arq_nome); while (!feof(p)) //enquanto não encontra o fim do arquivo { c = 0; //Leitura sincronizada.. fscanf(p, "%s", nome); //salta a palavra: 'nome:' fgets(nome, 27, p); fscanf(p, "%s", idade); //salta a palavra: 'idade:' fgets(idade, 5, p); printf("\nNome: %s\nIdade: %s", nome, idade); /*Caso alguma parte se perca, e o ponteiro no arquivo fique parado em alguma parte do registro, esta rotina fara a sincronizacao.*/ while(c != '$') { c = getc(p); if (feof(p)) break; } } fclose(p); //fecha o arquivo } Bom dia, pessoal. Preciso criar um programa que leia uma lista de nomes e idades de um arquivo texto. alguém poderia me ajudar em que estou errando? Preciso que imprima uma lista, mas só está imprimindo o primeiro nome e a primeira idade...
  4. jpaulofsa

    C abortar loop em C

    @devair1010 Muito obrigado, mas agora tem coisas avançadas que não vi ainda.
  5. jpaulofsa

    C abortar loop em C

    @devair1010 Obrigado! funcionou como precisava.
  6. jpaulofsa

    C abortar loop em C

    #include <stdio.h> int main() { int num[10]; //Declara um vetor de inteiros de 10 posições int count = 0; int totalnums; do { printf ("\nEntre com um numero (-999 p/ terminar): "); scanf("%d", &num[count]); count++; } while (num[count-1]!=-999 || (num[count] < 11)) ; totalnums=count-1; printf("\n\n\n\t Os numeros que voce digitou foram: \n\n"); for (count=0; count<totalnums; count++) printf(" %d", num[count]); return(0); } Boa noite, pessoal. Preciso fazer com que o loop seja interrompido caso o usuário entre com 10 números ou caso o Flag (-999) seja digitado, pensei em inserir a condição || (num[count] < 11) dentro do while, mas não deu certo. Alguém poderia ajudar? desde já agradeço.
  7. @AnsiC Ótimo. muito obrigado. #include <stdio.h> #include <stdlib.h> int main(void) { int index = 0, contador; char letras[5] = "Joao"; /* Através do comando if e do operador % testar se o contador é divisível por 5 para fazer com que cada letra seja escrita 5 vezes seguidas antes de atualizar o index */ for (contador=0; contador<1000; contador++) { { printf("\n %c", letras[index]); if (index==3) { index=0; } else { if (contador % 5 == 0) { ++index; } } } } printf("\n\n"); system("pause"); return 0; } Mas eu precisaria que estas letras se repetissem obedecendo ao contador < 1000...teria como ou só da forma que você fez mesmo? do jeito que fiz aí tem letras que repetem 1 vez, outras às 5 vezes...
  8. #include <stdio.h> int main() { int index = 0, contador; char letras[5] = "Joao"; /* Através do comando if e do operador % testar se o contador é divisível por 5 para fazer com que cada letra seja escrita 5 vezes seguidas antes de atualizar o index */ for (contador=0; contador<1000; contador++) { { //if (letras[index] % 5 == 0) printf("\n%c", letras[index]); if (index==3) { index=0; } else { if (letras[index] % 5 == 0) { ++index; } } } } } Bom dia, pessoal. Preciso da ajuda de vocês. Gostaria, Através do comando if e do operador %, de testar se o contador é divisível por 5 para fazer com que cada letra seja escrita 5 vezes seguidas antes de atualizar o index. Alguém conseguiria me auxiliar, tentei algumas formas inclusive da forma acima, mas não está dando certo.
  9. @isrnick muito obrigado. Resolvido! não sabia desse detalhe.
  10. #include <stdio.h> int main() { int cont; for (cont = 0; cont < 256; cont++) { printf("%d = %c \n", cont, cont); } } Fala turma. Preciso de um código que pegue os números de 0 a 255 e imprima o código ASCII correspondente. Pensei da forma acima, mas o problema é que ele esta começando a imprimir do 108 até o 255, não sei o porque tá ignorando do 0 ao 107. Alguém poderia ajudar?
  11. #include <stdio.h> #include <stdlib.h> struct tipo_no { int dado; struct tipo_no * proximo; }; typedef struct tipo_no No; struct tipo_lista{ No *primeiro; No *ultimo; }; typedef struct tipo_lista Lista; void criarLista(Lista* lista){ lista->primeiro = NULL; lista->ultimo=NULL; } int listaVazia(Lista* lista){ if ((lista->primeiro == NULL) || (lista->ultimo==NULL)) return 1; else return 0; } void inserirFinal(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->primeiro = novo; }else{ (lista->ultimo)->proximo = novo; } lista->ultimo = novo; } void inserirInicio(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->ultimo = novo; }else{ novo->proximo = lista->primeiro; } lista->primeiro = novo; } //Função que adiciona os números pares no início da lista e os números ímpares no final da lista void inserir(Lista* lista, int valor){ if((valor % 2) == 0){ inserirInicio(lista, valor); } else { inserirFinal(lista, valor); } } void listar(Lista* lista){ No* ponteiro = lista->primeiro; while(ponteiro!= NULL){ printf("%d ",ponteiro->dado); ponteiro = ponteiro->proximo; } printf("\n"); } int main(int argc, char *argv[]){ Lista* lista = (Lista*) malloc(sizeof (Lista)); criarLista(lista); int op=0,valor; do{ system("cls"); printf("\n1-Inserir Numero\n2-Listar\n3-Sair\n"); scanf("%d",&op); switch(op){ case 1:printf("\nInforme o Valor:"); scanf("%d",&valor); inserir(lista,valor); break; case 2:system("cls"); listar(lista); system("PAUSE"); } }while(op != 3); system("PAUSE"); return 0; } Muito obrigado.
  12. #include <stdio.h> #include <stdlib.h> struct tipo_no { int dado; struct tipo_no * proximo; }; typedef struct tipo_no No; struct tipo_lista{ No *primeiro; No *ultimo; }; typedef struct tipo_lista Lista; void criarLista(Lista* lista){ lista->primeiro = NULL; lista->ultimo=NULL; } int listaVazia(Lista* lista){ if ((lista->primeiro == NULL) || (lista->ultimo==NULL)) return 1; else return 0; } void inserirFinal(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->primeiro = novo; }else{ (lista->ultimo)->proximo = novo; } lista->ultimo = novo; } void inserirInicio(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->ultimo = novo; }else{ novo->proximo = lista->primeiro; } lista->primeiro = novo; } //Função que adiciona os números pares no início da lista e os números ímpares no final da lista void inserir(Lista* lista, int valor){ if(lista(valor) % 2 = 0){ inserirInicio(); } else { inserirFinal(); } } void listar(Lista* lista){ No* ponteiro = lista->primeiro; while(ponteiro!= NULL){ printf("%d ",ponteiro->dado); ponteiro = ponteiro->proximo; } printf("\n"); } int main(int argc, char *argv[]){ Lista* lista = (Lista*) malloc(sizeof (Lista)); criarLista(lista); int op=0,valor; do{ system("cls"); printf("\n1-Inserir no Final\n2-Inserir no Inicio\n3-Listar\n4-Sair\n"); scanf("%d",&op); switch(op){ case 1:printf("\nInforme o Valor:"); scanf("%d",&valor); inserirFinal(lista,valor); break; case 2:printf("\nInforme o Valor:"); scanf("%d",&valor); inserirInicio(lista,valor); break; case 3:system("cls"); listar(lista); system("PAUSE"); } }while(op != 4); system("PAUSE"); return 0; } Boa tarde! preciso fazer a implementação da função: //Função que adiciona os números pares no início da lista e os números ímpares no final da lista void inserir(Lista* lista, int valor){ if(lista(valor) % 2 = 0){ inserirInicio(); } else { inserirFinal(); } } para caso o novo número inserido seja para, vá para o início da lista e caso ímpar, vá para o final da lista. Para isso já foram implementadas as funções InserirFinal() e InserirInicio(), alguém poderia me ajudar e esclarecer onde estou errando?
  13. @AnsiC Obrigado! O erro era o uso de uma } dá nem pra creditar rsrsrs. muito obrigado.
  14. #include <stdio.h> #include <stdlib.h> struct funcionario{ //struct que cria o tipo char para nome e float para salário char nome[50]; //nome funcionario float salario; //salário funcionário }; typedef struct funcionario funcionario_t; //typedef nomeia a struct funcionario para funcionario_t void cadastra_funcionario(funcionario_t lista_funcionario[], int tamanho_lista) { funcionario_t novo_funcionario; tamanho_lista = 0; printf("Digite nome do funcionario: \n"); scanf("\n%s", novo_funcionario.nome); printf("Digite salario do funcionario \n"); scanf("\n%f", &novo_funcionario.salario); lista_funcionario[tamanho_lista] = novo_funcionario; tamanho_lista++; } funcionario_t maior_salario(funcionario_t lista_funcionario[], int tamanho_lista){ //funcao para maior salario if (tamanho_lista > 0) { int i, maior_indice; float maior_salario = 0; for (i = 0; i < tamanho_lista; i++) { if (lista_funcionario[i].salario > maior_salario) { maior_salario = lista_funcionario[i].salario; maior_indice = i; } printf("Nome funcionario: %s\n", lista_funcionario[maior_indice]); printf("Maior salario funcionario: %f\n", maior_salario); } } } int main(void){ //função main, chama as funcões acima funcionario_t lista_funcionario[50]; int tamanho_lista = 0; int continuar = 1; char opcao; do{ printf("===================================\n"); //insere uma "barra" printf(" Digite 1 para cadastrar: \n Digite 2 para maior salario:\n Digite 0 para sair:\n ==> "); //mostra "menu" em números para evitar case sensitive se houver. scanf("\n\n%c", &opcao); switch(opcao){ case '1': cadastra_funcionario(lista_funcionario, tamanho_lista); //chama funcao cadastra_funcionario tamanho_lista++; break; case '2': maior_salario(lista_funcionario, tamanho_lista); //chama funcao maior_salario break; case '0': continuar = 0; default: // em caso de não informar nenhum numero encerra o programa continuar = 0; } } while (continuar == 1);{ //continuar a execução do do getchar(); return 0; } } Boa tarde! estou tentando desenvolver este programa que tem que ter além da função main, as funções voidcadastra_funcionario e funcionario_tmaior_salario...o ojetivo é que o programa receba os dados dos funcionários e ao solicitar informações sobre o funcionário de maior salário, retorne o Nome e o maior salário...acontece que o printf retorna o nome e o maior salário, de fato, do funcionário, mas a quantidade de vezes do número de funcionários cadastrados...alguém poderia ajudar!?
  15. @devair1010 @Lobarinhas obrigado, guerreiros. vacilei legal...agora rodou, muito obrigado.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!