Ir para conteúdo
Fórum Script Brasil

Áquila

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre Áquila

Áquila's Achievements

0

Reputação

  1. 1) Faça um programa em C, que: a) crie uma lista sequencial do tipo t_lista com 50 elementos; B) exiba o seguinte menu de opções: EDITOR DE LISTAS 1 – EXIBIR LISTA 2 – INSERIR PELA POSICAO 3 – REMOVER PELA POSICAO 4 – EXIBIR ELEMENTO 5 – EXIBIR POSIÇÃO 6 – ESVAZIAR 7 – SAIR DIGITE SUA OPÇÃO: c) leia a opção do usuário; d) execute a opção escolhida pelo usuário; e) implemente a estrutura de dados lista, com implementação sequencial e utilizando como o elemento uma outra estrutura contendo dados simples, como números ou nomes. A lista deve conter apenas as operações básicas de listas (criar, isVazia, isCheia, tamanho, getElemento, getPosicao, inserir, remover); f) na opção de exibir lista, devem ser exibidos o tamanho da lista e os seus elementos; g) na opção de inserção, deve ser lido o valor do elemento a ser inserido e a posição onde será efetuada a inserção; h) na opção de remoção, deve ser lido a posição do elemento a ser removido; i) na opção de exibir elemento, deve ser lido a posição do elemento; j) na opção de exibir posição, deve ser lido o valor do elemento; k) as operações de exibir e esvaziar a lista devem estar inseridas no programa principal; l) após a execução de cada opção, o programa deve retornar ao menu para nova opção do usuário ou o encerramento do programa. O código que eu escrevi está parte feito, mas não sei mais o que está faltando. O código que eu fiz foi esse: #include <stdio.h> #include <stdlib.h> // tamanho máximo da lista #define MAX 10 // Tipo base dos elementos da lista typedef struct elementos { char nome[50]; char tel[50]; struct elementos *ptr; int x; } t_elemento; // Estrutura da lista typedef struct { t_elemento vetor[MAX]; // vetor que contém a lista int n; // posição do ultimo elemento da lista } t_lista; // tipo lista t_lista * criar() { t_lista * lista = (t_lista*) malloc(sizeof(t_lista)); if (lista) lista->n = -1; return lista; } void isVazia(t_lista * lista) { int isVazia(t_lista * lista) { return (lista->n == -1); } } int isCheia(t_lista * lista) { return (lista->n == MAX-1); } int tamanho(t_lista * lista) { return lista->n + 1; } t_elemento * geElemento(t_lista * lista, int pos) { // Retorna 0 se a posição for inválida. Caso contrário, retorna o elemento // verifica se pos é valida if ( (pos > lista->n) || (pos < 0) ) return 0; return &(lista->vetor[pos]); } int compara(t_elemento * dado1, t_elemento * dado2) { if (dado1->x == dado2->x) { return 1; } return 0; } int getPosicao(t_lista * lista, t_elemento * dado) { // Retorna a posição do elemento, ou 0 caso não seja encontrado int i; for (i=0; i<=lista->n; i++) if (compara(&(lista->vetor), dado)) return i; return 0; } // desloca os elementos da lista para a direita a partir de pos int deslocaDireita(t_lista * lista, int pos) { // Retorna 0 se a posição for inválida ou se a lista estiver cheia // Caso contrário, retorna 1 int i; if (pos > lista->n) return 0; for (i=lista->n + 1; i>pos; i--) lista->vetor = lista->vetor[i-1]; return 1; } // desloca os elementos da lista para a esquerda a partir de pos int deslocaEsquerda(t_lista * lista, int pos) { // Retorna 0 se a posição for inválida ou se a lista estiver cheia // Caso contrário, retorna 1 int i; if (pos > lista->n) return 0; for (i=pos; i<=(lista->n); i++) lista->vetor = lista->vetor[i+1]; return 1; } void inserir(t_lista * lista, int pos, t_elemento * dado) { int inserir (t_lista * lista, int pos, t_elemento * dado) { // Retorna 0 se a posição for inválida ou se a lista estiver cheia // Caso contrário, retorna 1 if ( isCheia(lista) || (pos > lista->n + 1) ) return 0; deslocaDireita(lista, pos); lista->vetor[pos] = *dado; (lista->n)++; return 1; } } int remover (t_lista *lista, int pos) { // O parâmetro dado irá receber o elemento encontrado // Retorna 0 se a posição for inválida. Caso contrário, retorna 1 if ( (pos > lista->n) || (pos < 0) ) return 0; deslocaEsquerda(lista, pos); (lista->n)--; return 1; } int main () { // programa principal int opcao; t_lista * lista; printf("EDITOR DE LISTAS\n"); printf("1- EXIBIR LISTA\n"); printf("2- INSERIR PELA POSICAO\n"); printf("3- REMOVER PELA POSICAO\n"); printf("4- EXIBIR ELEMENTO\n"); printf("5- EXIBIR POSIÇÃO\n"); printf("6- ESVAZIAR\n"); printf("7- SAIR\n"); printf("DIGITE SUA OPÇÃO:\n"); scanf("%d", &opcao); inserir(lista); remover(lista); getchar; getchar; } Por favor me ajudem não sei mais o que eu posso fazer.
  2. Olá.Sou inciante em C e estou com uma dúvida muito grande em relação a sintaxe do div e mod no programa. A professora pediu um programa com a seguinte descrição: Escreva um programa, em C, para ler um valor (em reais), calcular e exibir quantas cédulas de 100, 50, 20, 10, 5, 2 e 1, são necessárias. Então escrevi este código: #include <stdio.h> #include <conio.h> #include <stdlib.h> int main (void) { int valor, resto, resto_2, resto_3, resto_4, resto_5, qtde, qtd2, qtd3, qtd4, qtd5, qtd6, qtd7; printf(" Informe o valor:"); scanf("%d", &valor); valor/100 = qtde; valor % 100 div 50 = qtd2; resto = valor % 100/50; resto div 20 = qtd3; resto_2 = resto % 20; resto_2 div 10 = qtd4; resto_3 = resto_2 % 10; resto_3 div 5 = qtd5; resto_4 = resto_3 / 5; resto_4 div 2 = qtd6; resto_5 = resto_4 / 2; resto_5 div 1 = qtde7 printf(" A quantidade de notas de 100: %d", qtde); printf(" A quantidade de notas de 50: %d", qtd2 ); printf(" A quantidade de notas de 20: %d", qtd3); printf(" A quantidade de notas de 10: %d", qtd4 ); printf(" A quantidade de notas de 5: %d", qtd5); printf(" A quantidade de notas de 2: %d", qtd6); printf(" A quantidade de notas de 1: %d", qtd7); getch(); } e está apresentando os seguintes erros: Então as minhas dúvidas são: Não estou conseguindo entender qual a função do <stdlib.h> e qual seria a nomenclatura certa para o div e para o mod em C. E será que este código está realmente certo? ( Estou fazendo sozinho sem a ajuda de ninguém então estou pedindo a ajuda de vocês).
  3. Fiz o que você disse e o mesmo erro continuou acontecendo :S abaixo a imagem do erro: http://img299.imageshack.us/i/erropff.jpg/
  4. O sistema Operacional é o Windows XP Professional.
  5. Olá. Eu comecei a estudar essa linguagem de programação faz exatamente 3 semanas. Tudo é novo pra mim. O enunciado de uma questão que tentei fazer diz o seguinte: Considerando a data de nascimento (dia, mês e ano) de uma pessoa, escreva um programa, em C, para calcular e exibir a idade. Considere o ano atual (hoje !). Então escrevi esse código: #include <stdio.h> #include <conio.h> int main (void) { int diaN, mesN, anoN, diaA, mesA, anoA, idade; printf(" Informe a sua data de nascimento na seguinte configuracao: dd/mm/aaaa\n"); scanf("%d/%d/%d", &diaN, mesN, anoN); printf(" Informe a data atual na seguinte configuracao: dd/mm/aaaa\n"); scanf("%d/%d/%d", &diaA, &mesA, &anoA); if ((mesN > mesA) || ((mesN = mesA) && (diaN > diaA))) idade = anoA - anoN - 1; else idade = anoA - anoN; printf("idade = %d", idade); getch(); } Sendo que quando digito a data do nascimento na seguinte configuração dd/mm/aaaa, e aperto enter, dá um erro e volta pra o dev-C. Gostaria de saber se alguém pode me ajudar a descobrir porque acontece isso. Agradeço!
×
×
  • Criar Novo...