Jump to content
Fórum Script Brasil

Search the Community

Showing results for tags 'c'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • 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

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Ola!!!, programei no codeblocks um programa, mas testei depois no dev, agora no dev esta saindo com caracteres errados, sabe me dizer o porque? Exemplo: -> A matriz dividida pelo maior valor encontrado: -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R Esse 1,#R era pra ser numeros reais...
  2. Olá pessoal, tudo bem? Preciso de uma ajuda para descobrir o erro, se puderem também aceito material de estudo, o que acontece é que eu já rodei esse código de cima a baixo e ele continua dando problema na função: Buscar: mesmo quando não existe o valor ele retorna uma posição; Excluir: ele não exclui o valor quando ele está na primeira posição; Excluir tudo: após usar quando peço para imprimir o programa dá erro #include<stdio.h> #include<stdlib.h> //criação da lista - recebe um inteiro e tem um ponteiro //*ini é o ponteiro inicial (um ponteiro que aponta para outro ponteiro) struct No{ int dado; struct No *prox; } *ini=NULL; void inserir_ini(int num){ struct No *novo; // nova estrutura com características de No novo = malloc(sizeof(No())); //pegar um espaço de memoria novo->dado=num; //informação de novo agora é num novo->prox=ini; //ponteiro de novo aponta para ini (primeiro da lista) último da lista ini=novo; // ponteiro de ini aponta para novo } void inserir_fim(int num){ struct No *aux =ini, *novo; // novo ponteiro e nova estrutura com características de No novo = malloc(sizeof(No())); //pegar um espaço de memoria novo->dado=num; //informação de novo agora é num novo->prox=NULL; //ponteiro de novo aponta para NULL if(aux==NULL){ ini=novo; //se não tinha nada na lista, ini apontava para null, logo aux aponta para null, nesse caso ini vai apontar para o primeiro da lista } else{ while(aux->prox !=NULL){ aux=aux->prox; } aux->prox=novo; //procura o último da lista e conecta o novo nele } } void imprimir(){ struct No*novo; //criou um ponteiro igual ao no if (ini == NULL) { printf("--- fim da lista ---\n\n"); return; } novo = ini; while (novo !=NULL) { printf("Info = %d\n",novo->dado); novo = novo->prox; } printf("--- fim da lista ---\n\n"); } void buscar (int busca, struct No*ini){ int contador=1; struct No *q; q = ini; while (q != NULL && q->dado != busca) { q = q->prox; contador=contador+1; } printf("O valor inserido está na posição %d",contador); } void alterar(int alvo, int alvo2, struct No*ini){ struct No *q; q = ini; while (q != NULL && q->dado != alvo) { q = q->prox; } if (q != NULL) { q->dado=alvo2; } } void excluir(int alvo, struct No*ini){ struct No *p,*q; p=ini; q=ini->prox; if (q->dado==alvo) while (q != NULL && q->dado != alvo) { p = q; q = q->prox; } if (q != NULL) { p->prox = q->prox; free (q); } } void excluirtudo(struct No*ini){ struct No *aux; while (ini!= NULL) { aux = ini; ini=aux->prox; free(aux); } ini->prox=NULL; } int main(){ int op=1, num, num2,busca; while (op!=0){ printf("\n\nMenu \n1-Insere no inicio; \n2-Insere no fim; \n3-Imprime; \n4-Buscar \n5-Alterar \n6-Excluir um \n7-Excluir tudo \n0-Finaliza \n\n Digite a opcao: "); scanf("%d", &op); switch(op){ case 1: printf("\nInsira um numero: "); scanf("%d",&num); inserir_ini(num); break; case 2: printf("\nInsira um numero: "); scanf("%d",&num); inserir_fim(num); break; case 3: imprimir(); break; case 4: printf("Insira o numero que deseja buscar:"); scanf("%d",&busca); buscar(busca,ini); break; case 5: printf("\nInsira o numero que deseja substituir: "); scanf("%d",&num); printf("\nInsira o novo numero: "); scanf("%d",&num2); alterar(num,num2, ini); break; case 6: printf("\nInsira o numero que deseja excluir: "); scanf("%d",&num); excluir(num, ini); break; case 7: excluirtudo(ini); printf("\nLista deletada."); break; } } }
  3. Queria um fazer um jogo da adivinhação em linguagem c com comandos simples como printf, scanf, if, while, já tenho uma base de como gerar um numero aleatorio, só queria fazer algo em cima disso. Como dar continuidade depois q o usuario, digita os valores como um laco repeticao, para dar continuidade ao game #include <stdio.h> #include <stdlib.h> #include <time.h> int sortearNumero(int nInicial, int nFinal){ int numeroSorteado; numeroSorteado = (rand() % (nFinal-nInicial+1) ) + nInicial; return numeroSorteado; } int main(void){ int numero, vInicial, vFinal; printf("\nDigite o primeiro valor: "); scanf("%d", &vInicial); printf("\nDigite o segundo valor: "); scanf("%d", &vFinal); srand(time(NULL)); numero = sortearNumero(vInicial, vFinal); printf("\nO número sorteado foi: %d\n", numero); }
  4. Opa boa tarde! Estou com problema pois quero mostrar a média no for, ele até mostra a primeira média, mas depois ele fica somando e queria saber como fazer para ele não somar e mostrar a média dos 5 alunos separado. Segue a imagem:
  5. Escreva uma função recursiva que retorne a profundidade do nó cuja informação seja igual a um valor x dado. Se a árvore for vazia, a função deve ter como valor de retorno o valor -1, caso contrário, deve-se assumir que o nó com valor x sempre estará presente na árvore. Lembre-se que a profundidade do nó raiz é 0 (zero): int profundidade (Arv* a, int x) Exemplo: Considere a seguinte ABB: >>Para x = 105 retornará 3 >>Para x = 170 retornará 1 >>Para x = 150 retornará 0
  6. Boa noite pessoal, tudo bem com voces. Voces podem me ajurdar por favor? – Escreva um programa que com uma func¸ao chamada calcula que: • recebe como parametros duas variaveis inteiras, X e Y; • retorna em X a soma de X e Y; • retorna em Y a subtrac¸ao de X e Y . (a) Crie um arquivo de biblioteca (.h) com o nome lista08bib.h e coloque a declaraçao e prototipo da funçao calcula na biblioteca. (b) Crie um programa para chamar a funçao calcula. Salve e envie o seu arquivo com o nome programa01.c. Atençao: Lembre-se que ao final dessa lista voce devera enviar tambem o arquivo lista08bib.h.
  7. Olá, to entrando agora no mundo da programação. Já programava algumas coisas em HTML, mas resolvi migrar para por algumas ideias em prática. Só que não consigo tirá-las do papel para desenvolver esse app de rede social, no estilo das que conhecemos(login,post,interação). Queria saber todos os passos e como organizar os códigos, e quais linguagem tenho que dominar para isso, para conseguir fazer da estrutura, ao layout do app. Já sei que vou precisar de um banco de dados.
  8. estou sem tempo para realizar esses 2 desafios com prazo de entrega no dia 27, quem se interessar pode me encaminhar uma mensagem e combinamos detalhes, tem os codigos de base para os 2 programas
  9. Um programa recebe por linha de comando um termo e uma frase (nessa ordem), e o programa deve detectar e imprimir as posições do termo. Ex: ./programa --termo ro --frase "O rato roeu a roupa do rei de roma" -> posições do termo: 7, 14 e 30. O que fiz até agora: #include<stdio.h> int posicao(char *frase, char *termo){ int j=0,i=0,n=0; for(i=0; i != '\0'; i++){ for(j=0; j != '\0'; j++){ if(frase[i] == termo[j]){ n = n+1; printf("posicao : %d\n",i); } else if(n==0){ printf("não foi achado\n"); } } } } int main(int argc, char *argv[]){ char *frase, *termo; termo = (argv[1]); frase = (argv[2]); posicao(frase, termo); return 0; }
  10. Pergunta: "Escreva um programa que ordene alfabeticamente, de forma crescente, as letras existente numa “string” previamente pedida ao utilizador. Esta ordenação deverá ser efetuada num vetor auxiliar que será inicializado com os endereços de memória de cada uma das letras existente na “string”. A construção deste vetor, o qual é constituído por endereços de memória, não poderá alterar a “string” original." Por exemplo: a palavra "ana", no output ficaria "aan" Já tentei mas não percebo porque está a dar erro #include <stdio.h> #include <string.h> void ordenarString(char *string, int tamanho); main() { char string[100]; int tamanho; printf("Introduza uma palavra\n"); gets(string); tamanho=strlen(string); ordenarString(string,tamanho); scanf("%d",&string); } void ordenarString(char *string, int tamanho){ int i, j, *aux[tamanho]; for(i=0;i<10;i++){ for(j=i+1;j<10;j++){ if(strcmp(string[j], string[i])==-1){ strcpy(aux, string[i]); strcpy(string[i], string[j]); strcpy(string[j], aux); } } } }
  11. davigomes

    Tarefa em C

    Considere as structs abaixo: struct data { int dia; // dia da tarefa int mes; //mês da tarefa int ano; //ano da tarefa }; struct hora { int hora; //hora da tarefa int min; //minutos da tarefa int sec; //segundos da tarefa }; struct evento { char descri[80]; //descrição do evento char evento[20]; //nome do evento char tipo; //1 – escolar, 2 – médico, 3 – familiar, 4 - amigos struct data evd; //data do evento struct hora evh; //hora do evento }; Elaborar um programa em C para operar uma agenda, segundo o menu principal: Agenda de eventos EP2015 1 – Inserir novo evento 2 – Alterar evento existente 3 – Excluir evento existente 4 – Listar eventos por dia 5 – Listar eventos por semana 6 – Listar eventos por mês 7 – Listar eventos por tipo no mês ou na semana ESC - Sair Considerações: 1. Não será aceito a utilização de variáveis globais; 2. Cada uma das opções deverá ser manipulada por uma função que recebe o endereço da struct, ou seja, a função deve acessar a struct por ponteiro; 3. O main() deverá operar somente o menu principal e as operações com arquivo; 4. Ao iniciar o programa, o vetor de structs deve ser lido de um arquivo cujo nome o usuário informa; 5. Ao encerrar o programa, o vetor de structs deve ser salvo num arquivo cujo nome o usuário informou no início; 6. Na inclusão de um evento é obrigatório o preenchimento das variáveis: evento, tipo, data e hora; 7. Só poderão ser cadastrados 5 eventos no mesmo dia; 8. Quando um feriado for cadastrado, não poderão ser cadastrados eventos escolares e/ou médicos no mesmo dia; 9. Para efeitos de organização, o programador poderá incluir novas variáveis na estrutura; 10. No hora do evento, o programa deverá apresentar uma mensagem de texto e sonora alertando o evento; 11. Para criação da estrutura, utilizar struct evento agenda[365]; 12. Não serão consideradas (corrigidas) as cópias de código; 13. Na avaliação serão observados os critérios de originalidade, eficiência do código, telas de apresentação do menu e das listagens e a utilização correta dos comandos em C. Sugestão: para salvar a agenda em arquivo e posterior leitura, utilizar os comandos fread() e fwrite().
  12. void inputData(){ FILE* arquivo; REGISTRO ctt; arquivo = fopen("registro.txt", "ab"); if(arquivo == NULL){ printf("Arquivo não encontrado ou arquivo inexistente.\n\n"); } else{ do{ if (contador <=5){ cabecalho(); fflush(stdin); printf("Digite o nome: "); gets(ctt.nome); fflush(stdin); printf("Digite a matricula: "); gets(ctt.matri); printf("Digite o RA: "); scanf("%d",&ctt.ra); fflush(stdin); printf("Digite a extensão do arquivo: "); gets(ctt.extensao); fwrite(&ctt, sizeof(REGISTRO), 1, arquivo); }else{ printf("Você já registrou 5 alunos.") } printf("Deseja continuar(s/n)?"); }while(getche() == 's'); fclose(arquivo); getch(); } }
  13. Tenho esse código em C que permite adicionar no inicio e no fim da lista e remover do inicio da lista, precisava criar um método para remover do fim da lista, porém não estou conseguindo, alguém pode me ajudar? typedef struct abstracao { int valor; struct abstracao *prox; }lista; lista *inicio; lista *aux; lista *fim; int op, x, contador; void InserirInicio(int a) { printf(" ---- -INSERIR- ----"); struct abstracao *novo = malloc(sizeof(struct abstracao)); novo->valor = a; if (inicio ==NULL) { inicio = novo; fim = novo; fim->prox = NULL; } else { novo->prox = inicio; inicio = novo; } contador++; } void Apresentar() { if(inicio == NULL) printf("Lista esta VAZIA.\n"); else { aux = inicio; printf("\n"); while(aux!=NULL) { printf(" %d - ", aux->valor); aux = aux->prox; }printf("\n"); printf("Quantidade de elemento da lista: %d\n", contador); } } void RemoverInicio() { aux = inicio; inicio = aux->prox; free(aux); aux = inicio; } void InserirFinal(int a) { printf(" ---- - INSERIR- ----\n"); struct abstracao *novo = malloc(sizeof(struct abstracao)); novo->valor = a; if(inicio==NULL) { inicio = novo; fim = novo; fim->prox = NULL; } else { fim->prox = novo; fim=novo; fim->prox = NULL; } } void main() { inicio = NULL; aux = NULL; do { printf(" --- Digite uma opção para lista --- \n"); printf("1 - Inserir no INICIO\n"); printf("2 - Apresentar\n"); printf("3 - Remover\n"); printf("4 - Inserir FINAL\n"); printf("5 - Remover FINAL\n"); scanf("%d", &op); switch(op) { case 1: { printf("Digite um valor para inserir na lista: \n"); scanf("%d", &x); InserirInicio(x); }break; case 2: { Apresentar(); }break; case 3: { RemoverInicio(); }break; case 4: { printf("Digite um valor para inserir na lista: \n"); scanf("%d", &x); InserirFinal(x); }break; case 5: { RemoverFinal(); } } }while (op<6); }
  14. //INICIO #include <xc.h> // CONFIG #pragma config FOSC = HS #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config BOREN = OFF #pragma config LVP = OFF #pragma config CPD = OFF #pragma config WRT = OFF #pragma config CP = OFF #define _XTAL_FREQ 4000000 int display(int numero); int C1 = 0, C2 = 0; void __interrupt() tratamento_interrupcao(void) { static int contador = 0; static int led = 1, sel_display = 1; if (INTCONbits.TMR0IF == 1) { // Reset flag after overflow INTCONbits.TMR0IF = 0; TMR0 = 131; contador++; if (contador == 125) { contador = 0; led = !led; PORTDbits.RD0 = led; } //Atualização dos Displays sel_display = !sel_display; if (sel_display == 1) { PORTDbits.RD1 = 1; PORTDbits.RD2 = 0; PORTC = display(C2); } else { PORTDbits.RD1 = 0; PORTDbits.RD2 = 1; PORTC = display(C1); } } if (INTCONbits.INTF == 1) { INTCONbits.INTF = 0; C1++; if (C1 == 10) { C1 = 0; C2++; } if (C2 == 10) { C1 = 0; C2 = 0; } __delay_ms(50); } } void main(void) { //Inicialização e configuração TRISC = 0x00; //Saídas TRISD = 0X00; //Saídas TRISBbits.TRISB0 = 1; //Entrada TRISBbits.TRISB1 = 1; //Entrada // Configuração do Timer0 // Select timer mode OPTION_REGbits.T0CS = 0; OPTION_REGbits.PSA = 0; // Set Prescaler to 64 OPTION_REGbits.PS = 0b101; // Configura o valor inicial TMR0 = 131; // Habilita Timer0 interrupt INTCONbits.TMR0IE = 1; // Habilita External interrupt INTCONbits.INTF = 1; INTCONbits.INTF = 0; // Habilita global interrupt INTCONbits.GIE = 1; while(1){ } } int display(int numero) { switch (numero) { case 0: return 0x3F; break; case 1: return 0x06; break; case 2: return 0x5B; break; case 3: return 0x4F; break; case 4: return 0x66; break; case 5: return 0x6D; break; case 6: return 0x7D; break; case 7: return 0x07; break; case 8: return 0x7F; break; case 9: return 0x6F; break; defaut: return 0x00; break; } } Quem pode me ajudar, preciso implementar um contador de fluxo de pessoas, com incremento quando entra uma pessoa por um porta e decremento quando sai por outra porta.
  15. Olá pessoas, acabei tendo dificuldades em representar o programa que tem de ter arquivo e mostrar na tela o conteúdo do texto e em seguida mostrar ele em maiúsculo, por gentileza se puderem fazer as alterações necessárias pra uma melhor compreensão eu ficaria grato. #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fptr; short int ch ; if ((fptr = fopen("arqtext.txt","r")) == NULL) { puts(" não foi possivel abrir o arquivo"); system("pause"); } while (( ch = fgetc(fptr)) != EOF) printf(" %c",ch); printf(" em maiusculo : %s",strupr(ch)); fclose(fptr); return 0; }
  16. Tozzi

    strings

    hello, could someone help me with a string exercise? the exercise is in C Write a program that receives an N> 0 value that indicates the amount of electronic products. Next, ask the user to provide the names of these N> 0 devices and count how many of these names are the same, regardless of whether they are written in letters upper or lower case. The program ends when one of the names receives the value 0 (zero).
  17. Boa noite a todos, Preciso de uma ajudinha em um exercício em C. Segue abaixo. O dono da loja “Bugigangas e Cia Ltda” compra um determinado produto para revender. O valor de revenda é calculado da seguinte forma: se o comerciante pagar menos de R$ 20,00 pelo produto, ele deseja obter um lucro de 55%; se o valor de compra é maior ou igual a R$ 20,00, o valor de revenda é tal que o comerciante deseja um lucro de 40%. Em ambos os casos, o programa deve calcular o valor do imposto que é 17% a ser pago a partir do preço de revenda. Com base nestes dados, construa um programa que, leia o valor de compra de um produto e calcule e escreva o valor de compra, o valor de revenda do produto e o valor do imposto.
  18. Projeto Calendário Permanente (veja a imagem abaixo): Como eu faço? Abaixo está um código base para você. As matrizes A1, A2, B e C já estão preenchidas. Você implementará a função procurarLinha, que varre uma matriz, em busca de um valor, e retorna somente a linha em que encontrou o elemento. Adicionalmente, precisará terminar o main: -Com base no ano, decida se vai fazer a primeira pesquisa em A1 (ano até 2000) ou A2 (a partir de 2001). Use para a pesquisa somente os últimos dois dígitos do ano (para isso você pode usar o resto da divisão inteira por 100: ano%100). Esta pesquisa é feita com a chamada da função procurarLinha; só interessa saber em que linha da matriz está este ano. -Use a linha achada acima e a coluna correspondente ao mês para ler um valor da matriz B. -Some o valor lido da matriz B ao dia: esta soma deverá ser procurada na matriz C, com a chamada da função procurarLinha; só interessa saber em que linha da matriz está esta soma. Esta linha contém o dia da semana correspondente a data em questão: 0 para domingo, 1 para segunda, 2 para terça, 3 para quarta, 4 para quinta, 5 para sexta e 6 para sábado. Exemplo numérico para melhorar o entendimento: vamos descobrir que dia da semana corresponde a 01/09/2018: 1) 2018 > 2000, então procuro 18 na matriz A2: está na 10ª linha. 2) Na matriz B, 10ª linha, coluna correspondente ao mês de Setembro, leio o número 6. 3) Somo 6 mais o dia (1), obtendo 7. 4) Procuro em que linha da matriz C existe o número 7: última linha, correspondente à Sábado!! Código de apoio: #include <stdio.h> #include <locale.h> int procurarLinha(int L, int C, int mat[L][C], int proc) { //aqui você completa .... //esta função retorna a linha em que proc aparece na matriz for(....) { for(...) { if(...) { } } } } //Calendário permanente de 1901 a 2092 int A1[28][4], A2[28][4]; int B[28][12]= {{4,0,0,3,5,1,3,6,2,4,0,2}, {5,1,1,4,6,2,4,0,3,5,1,3}, {6,2,2,5,0,3,5,1,4,6,2,4}, {0,3,4,0,2,5,0,3,6,1,4,6}, {2,5,5,1,3,6,1,4,0,2,5,0}, {3,6,6,2,4,0,2,5,1,3,6,1}, {4,0,0,3,5,1,3,6,2,4,0,2}, {5,1,2,5,0,3,5,1,4,6,2,4}, {0,3,3,6,1,4,6,2,5,0,3,5}, {1,4,4,0,2,5,0,3,6,1,4,6}, {2,5,5,1,3,6,1,4,0,2,5,0}, {3,6,0,3,5,1,3,6,2,4,0,2}, {5,1,1,4,6,2,4,0,3,5,1,3}, {6,2,2,5,0,3,5,1,4,6,2,4}, {0,3,3,6,1,4,6,2,5,0,3,5}, {1,4,5,1,3,6,1,4,0,2,5,0}, {3,6,6,2,4,0,2,5,1,3,6,1}, {4,0,0,3,5,1,3,6,2,4,0,2}, {5,1,1,4,6,2,4,0,3,5,1,3}, {6,2,3,6,1,4,6,2,5,0,3,5}, {1,4,4,0,2,5,0,3,6,1,4,6}, {2,5,5,1,3,6,1,4,0,2,5,0}, {3,6,6,2,4,0,2,5,1,3,6,1}, {4,0,1,4,6,2,4,0,3,5,1,3}, {6,2,2,5,0,3,5,1,4,6,2,4}, {0,3,3,6,1,4,6,2,5,0,3,5}, {1,4,4,0,2,5,0,3,6,1,4,6}, {2,5,6,2,4,0,2,5,1,3,6,1}}; int C[7][6]; int main() { int l,c,x; //populando a tabela A1 x=-3; for(c=0;c<4;c++) for(l=0;l<28;l++, x++) if(x<1) A1[l][c]=-1; else if(x<100) A1[l][c]=x; else if(x==100) A1[l][c]=0; else A1[l][c]=-1; //populando a tabela A2 x=-19; for(c=0;c<4;c++) for(l=0;l<28;l++, x++) if(x<1) A2[l][c]=-1; else A2[l][c]=x; //populando a tabela C x=1; for(c=0;c<6;c++) for(l=0;l<7;l++, x++) if(x>37) C[l][c]=-1; else C[l][c]=x; int dia, mes, ano, resposta, linha; setlocale(LC_ALL, "Portuguese"); printf("\nEntre com uma data no formato DD/MM/AAAA: "); scanf("%d/%d/%d", &dia, &mes, &ano); if(ano<1901 || ano>2092) printf("Erro!! O ano deve ser de 1901 a 2092.\n"); //aqui você completa ...... //decida se vai usar A1 ou A2 //extraia os dois últimos dígitos para procurar em A1 ou A2 -----> encontrei uma linha para olhar na matriz B //com o mês eu terei uma coluna na matriz B (Janeiro é mês 1 mas corresponde à coluna 0, Fevereiro é mês 2 mas corresponde à coluna 1, ........Dezembro corresponde à coluna 11) //some o dia fornecido com o valor encontrado na matriz B //procure este último cálculo na matriz C ------> linha linha == 0 ---> Domingo // linha == 1 ---> Segunda // .... // linha == 6 ---> Sábado// return 0; }
  19. #include <stdio.h> #include <stdlib.h> typedef struct { int valor; struct Registro * prox; }Registro; typedef struct{ Registro *inicio; int tamanho; }Lista; Lista * criarLista(){ Lista *l = malloc(sizeof(Lista)); l->inicio = NULL; l->tamanho = 0; return l; } Registro * criarRegistro(int valor){ Registro *r = (Registro *) malloc(sizeof(Registro)); r->valor = valor; r->prox = NULL; return r; } void inserirLista(Lista *L, int valor){ Registro * r = criarRegistro(valor); if(L->tamanho == 0){ L->inicio = r; }else{ r->prox = L->inicio; L->inicio = r; } L->tamanho++; } void teste(Lista *L){ int v1 = L->inicio->valor; int v2 = L->inicio->prox->valor; } int main() { Lista *L = criarLista(); inserirLista(L,10); inserirLista(L,20); teste(L); return 0; }
  20. não consegui fazer com que ele gere o token com letra e número aleatório, nem passar o valor desse token pro primeiro registro (tokenGerado) devido a concatenação também, por isso o segundo registro está em char, porque assim eu podia usar strcat, mas não deu certo. ``` #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct{ char tokenGerado; int idPessoaGerou; float dataGerado; char TextoDoDocumento[100]; }PessoaToken; typedef struct{ char numeroAleatorio; char letraAleatoria; char diaTokenGerado; char mesTokenGerado; char anoTokenGerado; }Token; int main() { char letras[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; Token tok; PessoaToken pessoa; printf("Dia token gerado: \n"); scanf("%s", &tok.diaTokenGerado); //printf("%s\n", &tok.diaTokenGerado); printf("Mes token gerado: \n"); scanf("%s", &tok.mesTokenGerado); //printf("%s\n", &tok.mesTokenGerado); printf("ano token gerado: \n"); scanf("%s", &tok.anoTokenGerado); //printf("%s\n", &tok.anoTokenGerado); tok.numeroAleatorio = rand() % 10; int i = rand() % 23; printf("%d i valor\n",i); printf("%c letra do array",letras[i]); tok.letraAleatoria = letras[i]; printf("%c numero\n", &tok.numeroAleatorio); printf("%c letra\n", &tok.letraAleatoria); /*strcpy(pessoa.tokenGerado,tok.diaTokenGerado); strcat(pessoa.tokenGerado, tok.numeroAleatorio); strcat(pessoa.tokenGerado, tok.mesTokenGerado); strcat(pessoa.tokenGerado, tok.letraAleatoria); strcat(pessoa.tokenGerado, tok.anoTokenGerado); puts(pessoa.tokenGerado);*/ return 0; } ```
  21. Estou com dificuldades na questão abaixo: O usuário deve indicar uma posição dentro da matriz, e o programa deve informar a soma dos valores do ponto inicial (0,0) até ao ponto informado pelo usuário. A movimentação será deve ser feita por linhas. Exemplo: Usuário informou posição (1,1), para a matriz na imagem abaixo, o programa irá retornar o valor igual a 21, que é a soma dos valores 1 + 2 + 3 + 4 + 5 + 6. não estou conseguindo fazer 😞 #include <stdio.h> int main() { int matriz[4][3], i, j; for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("Linha[%d]Coluna[%d]= ", j, i); scanf("%d",&matriz[i][j]); } } for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("%d ",matriz[i][j]); } printf("\n"); } for(i=0;i<4;i++){ for(j=0;j<3;j++){ matriz[4][3]=matriz[4][3]+matriz[i][j]; } } for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("%d", matriz[i][j]); } printf("\n"); } return 0; }
  22. Qualquer número natural de quatro algarismos pode ser dividido em duas dezenas formadas pelos seus dois primeiros e dois últimos dígitos. Exemplos: 1297: 12 e 97. 5314: 53 e 14. Escreva um programa que imprime todos os milhares (4 algarismos) cuja raiz quadrada seja a soma das dezenas formadas pela divisão acima. Exemplo: raiz de 9801 = 99 = 98 + 01. Portanto 9801 é um dos números a ser impresso. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> int main(){ int i,d1,d2; for(i = 1000; i <= 9999; i += 1){ d1 = i%100; d2 = i/100; if( (d1+d2)*(d1+d2) == i ) printf("%d\n",i); } return 0; }
  23. Eu estou fazendo um cadastro escolar onde eu crio uma lista duplamente encadeada circular para inserir os alunos, e uma lista simplesmente encadeada para inserir uma disciplina do aluno. Na parte de cadastrar aluno deu tudo certo, mas na hora de inserir a lista de disciplina na lista do aluno selecionado da erro. Quem puder me ajudar eu agradeço. Segue o código: aluno.h #ifndef ALUNO_H_INCLUDED #define ALUNO_H_INCLUDED typedef struct DisciplinasListas { char nome[100]; struct DisciplinasListas * prox; }Disciplina; struct AlunosLista{ char nome[100], dataNascimento[11],matricula[10]; Disciplina * disciplinas; struct AlunosLista * next; struct AlunosLista * prev; }; void cadastrarAluno(); void imprimirLista(); void cadastrarDisciplinas(); struct AlunosLista * buscaAluno(char *); #endif main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include "aluno.h" typedef struct AlunosLista node; node *head = NULL, *tail = NULL; void cadastrarAluno() { node *newNode = (node *) malloc(sizeof(node)); printf("\nForneca a matricula: "); fgets(newNode->matricula,10,stdin); setbuf(stdin,NULL); printf("\nForneca o nome: "); fgets(newNode->nome,100,stdin); setbuf(stdin,NULL); printf("\nForneca a data de nascimento: "); fgets(newNode->dataNascimento,11,stdin); setbuf(stdin,NULL); newNode->disciplinas=NULL; newNode->next = newNode; newNode->prev = newNode; if(head==NULL) { head = newNode; tail = newNode; } else { tail->next = newNode; newNode->next = head; newNode->prev = tail; tail = newNode; head->prev = tail; } } void imprimirLista() { if(head==NULL) return; node *current = head; do { printf("\n%s", current->matricula); Disciplina *currentDisc = current->disciplinas; do { printf("\n%s", currentDisc->nome); currentDisc = currentDisc->prox; } while(currentDisc != current->disciplinas); current = current->next; } while(current != head); } struct AlunosLista * buscaAluno(char matricula[]) { if(head==NULL) return; node *current = head; do { if(!strcmp(current->matricula,matricula)) { return current; current = current->next; } } while(current != head); return 0; } void cadastrarDisciplinas() { char disciplina[100], matricula[10]; if(head==NULL) return; printf("\nForneça a matricula do aluno:"); fgets(matricula,10,stdin); setbuf(stdin,NULL); struct AlunosLista *busca = buscaAluno(matricula); if(busca!=0) { printf("\nForneça o nome da disciplina:"); fgets(disciplina,100,stdin); setbuf(stdin,NULL); node *current = head; do { if(current==busca) { if (!strcmp(current->matricula,matricula)) { Disciplina * lDisciplina = (Disciplina *)malloc(sizeof(Disciplina)); strcpy(lDisciplina->nome,disciplina); lDisciplina->prox = current->disciplinas; current->disciplinas->prox = lDisciplina; break; } } current = current->next; } while(current != head); } else printf("\nAluno inexistente!!!"); } int main(){ int opcao; do{ printf("\n1-cadastrar aluno"); printf("\n2-cadastrar disciplinas do aluno"); printf("\n3-listar"); printf("\n4-sair"); printf("\nForneca a sua opcao: "); scanf("%d",&opcao); setbuf(stdin,NULL); switch(opcao){ case 1: cadastrarAluno(); break; case 2: cadastrarDisciplinas(); break; case 3: imprimirLista(); break; } }while(opcao!=4); return 0; }
  24. Olá pessoal, to começando a programa e me indicaram o VS Code, podem está dando erro na hora de compilar. Estou começando a programar em C, sempre que peço para o programa compilar aparece que deu erro, alguém poderia me ajudar???
  25. Boa noite, alguém pode me ajudar a colocar a opção excluir nesse código, tem que procurar pelo nome da pessoa e fazer a exclusão, segue o que eu conseguir fazer até agora. Eu até coloquei a opção excluir ali mas não ta funcionando. #include<stdio.h> #include<stdlib.h> #include<string.h> #include <locale.h> struct stNo { int info, idade, celular; char nome[100],endereco[100], sexo, cidade[80], email[40]; struct stNo *prox; }; struct stNo *cria_no() { struct stNo *p; if ((p = (struct stNo *) malloc(sizeof(struct stNo))) == NULL) return NULL; else { p->prox = NULL; return p; } } void insereLista(struct stNo **list){ struct stNo *p,*q; int n, idade, celular; char name[100], endereco[100], sexo, cidade[80], email[40]; fflush(stdin); printf("\nDigite o valor do nó:"); scanf("%i",&n); fflush(stdin); printf("\nDigite o nome:"); gets(name); fflush(stdin); //printf("\nDigite o seu sexo [F][M]:"); //scanf("%c",&sexo); //fflush(stdin); //printf("\nDigite sua idade:"); //scanf("%i",&idade); //fflush(stdin); //printf("\nDigite seu endereço:"); //gets(endereco); //fflush(stdin); //printf("\nDigite sua cidade:"); //gets(cidade); //fflush(stdin); //printf("\nDigite seu celular:"); //scanf("%i",&celular); //fflush(stdin); //printf("\nDigite seu e-mail:"); //gets(email); //fflush(stdin); if(*list==NULL){ //lista vazia p = cria_no(); *list = p; p->prox = NULL; p->info = n; strcpy(p->nome,name); p->sexo=sexo; p->idade=idade; strcpy(p->endereco,endereco); strcpy(p->cidade,cidade); p->celular=celular; strcpy(p->email,email); } else{ p=*list; while(p->prox!=NULL) p=p->prox;// posiciona no final da lista q = cria_no(); p->prox = q; q->prox = NULL; q->info = n; strcpy(q->nome,name); *list = q; }; }; void mostraLista(struct stNo **list){ struct stNo *p; if(*list!=NULL){ p=*list; while(p->prox!=NULL){ printf(" %d->",p->info); p = p->prox; }; printf(" %d->",p->info); } else printf("\nLista Vazia"); }; void excluirLista(struct stNo **list){ struct stNo *p,*q; int n; char name[100]; if(*list!=NULL){ //lista vazia p = *list; while (p->prox!=NULL && strcmp(p->nome, name) != 0) { p = p->prox; }; if(strcmp(p->nome, name) == 0){ printf("\nCódigo: %d",p->info); printf("\nNome: %s",p->nome); if(p->prox==NULL){ free(p); *list =NULL; }else{ while(p->prox!=NULL){ q=p; p=p->prox; } q->prox=NULL; free(p); else{ q=p->prox; free(p); *list=q; } else{ q->prox=NULL; free(p); } }else{ printf("\nLista Vazia"); } }; void visualizarLista(struct stNo **list){ struct stNo *p; int n; char name[100]; fflush(stdin); printf("\nDigite o nome:"); gets(name); fflush(stdin); if (*list!=NULL) { p = *list; while (p->prox!=NULL && strcmp(p->nome, name) != 0) { p = p->prox; }; if(strcmp(p->nome, name) == 0){ printf("\nCódigo: %d",p->info); printf("\nNome: %s",p->nome); //printf("\nSexo: %c",p->sexo); //printf("\nIdade: %d",p->idade); //printf("\nEndereço: %s",p->endereco); //printf("\nCidade: %s",p->cidade); //printf("\nCelular: %i",p->celular); //printf("\nE-mail: %s",p->email); }; } else printf("\nLista Vazia"); }; main(){ setlocale(LC_ALL,"Portuguese"); struct stNo *lista; int menu; lista = NULL; // inicializando a lista vazia do{ system("cls"); printf("\n"); mostraLista(&lista); printf("\n\n"); printf("[1-Inserir] "); printf("[2-Visualizar] "); printf("[3-Excluir] "); printf("[4-Sair] "); printf("Opção:"); scanf("%i",&menu); switch(menu){ case 1 : insereLista(&lista); break; case 2 : visualizarLista(&lista); break; case 3 : excluirLista(&lista); break; case 4 : printf("\nSaindo..."); break; default: printf("\nCódigo Inválido"); } printf("\n");system("pause"); }while(menu!=3); }
×
×
  • Create New...