Ir ao conteúdo
  • Cadastre-se

Gabbie1

Membro Pleno
  • Posts

    46
  • Cadastrado em

  • Última visita

Tudo que Gabbie1 postou

  1. @Lucca Rodrigues Eu havia testado começar o vetor do 0, mas daí alterei pro 2 e esqueci de colocar 0 novamente. Entendi! Nem tive a ideia de colocar outro loop, muito obrigada mesmo! A explicação vai me ajudar muito nos próximos exercícios.
  2. Alguém pode me ajudar com esse código? Ele não retorna nada. Leia 10 números inteiros e armazene em um vetor. Em seguida escreva os elementos que são primos e suas respectivas posições no vetor */ #include <stdio.h> #include <locale.h> #define tam 3 int main (void){ setlocale (LC_ALL, ""); int vet[tam], i, cont=0; for (i=0;i<tam;i++){ printf ("Entre com um número:"); scanf ("%d", &vet[i]); } for (i=2; i<tam; i++){ if (vet[i]%i== 0) cont++; if (cont == 0) printf ("[%d]: %d é primo!",i, vet[i]); } return 0; }
  3. #include <stdio.h> #include <locale.h> int main (void){ int num, soma, cont=0, quant=0, media=0, maior=0, menor, mediapar=0, opcao=0, numpar=0, somapar=0; setlocale(LC_ALL, ""); do{ printf("\nEscolha uma opção: "); printf("\n1- Inserir números: "); printf("\n2- A Soma dos números digitados"); printf("\n3- A quantidade de números digitados"); printf("\n4- A média dos números digitados"); printf("\n5- O maior número digitado"); printf("\n6- O menor número digitado"); printf("\n7- A média dos números pares"); printf("\n8- Finalizar"); printf("\nEscolha uma opção: "); scanf ("%d", &opcao); switch (opcao) { case 1: printf("\nEntre com um número: "); scanf ("%d", &num); cont++; soma = soma + num; if (num<menor) menor = num; else if (num<menor) menor = num; if(num % 2 == 0) { mediapar++; numpar = num; somapar = somapar + num; } break; case 2: printf ("Total: %d", soma); break; case 3: printf ("%d", cont); break; case 4: media = soma/cont; printf ("%d", media); break; case 5: printf ("%d", maior); break; case 6: printf ("%d", menor); case 7: mediapar = somapar / mediapar; printf ("%d", somapar); break; } } while (opcao != 8); return 0; } Ambos os testes retornam valores aleatórios o média par também não funciona.
  4. Acabou que com muita luta eu consegui fazer voltar
  5. Olá pessoas Tô com os seguinte problema, tenho um dlink 2500e mas agora a luz de internet não acende mais e ele não configura mais. Já liguei no provedor fiz mil coisas. Será que trocar o modem resolve?
  6. Alguém pode me ajudar com os erros de lógica desse código? #include <stdio.h> #include <stdlib.h> int main (){ int m[3][6]; int i, j; int op =999, soma=0; int cont=0, media=0; while (op != 6){ printf ("\n1 - Carregar a matriz"); printf ("\n2 - Imprimir a soma de todos os elementos das colunas ímpares"); printf ("\n3 - Imprimir a média aritmética dos elementos da segunda e quarta coluna"); printf ("\n4 - Substituir os valores da sexta coluna pela soma dos valores das colunas 1 e 2"); printf ("\n5 - Imprimir a matriz modificada"); printf ("\n6 - Sair"); printf ("\nQual a sua opcao?"); scanf ("%d", &op); switch (op){ case 1: for (i=0;i<3;i++){ for (j=0;j<6;j++){ printf ("\nInsira o elemento [%d][%d]: ", i, j); scanf ("%d", &m[i][j]); } } break; case 2: for (i=0;i<3;i++){ for (j=0;j<6;j=j+2){ soma = soma + m[i][j]; break; } } printf ("\nTotal da soma = %d", soma); case 3: for (i=0;i<3;i++){ for (j=2;j<4;j=j+2){ soma = soma + m[i][j]; cont++; } } media = soma/cont; printf ("\nMedia = %d", media); break; case 4: for (i=0;i<3;i++){ for (j=0;j<1;j=j++){ soma = soma + m[i][j]; soma = m[i][6]; soma = 0; } } break; case 5: for (i=0;i<3;i++){ for (j=0;j<6;j++){ printf ("[%d][%d]: %d", i, j, m[i][j]); } printf ("\n"); } break; } } getchar (); getchar (); return 0; }
  7. Como posso contar os espaços em branco? Eles contam como caracteres? Também gostaria de saber como posso contar os caracteres de forma mais eficiente sem ter que contar o +1 ali Agradeço desde já #include<stdio.h> #include<string.h> #include<stdlib.h> int main(void){ int i, tams, num_vogal = 0, letras = 0; char *frase, *pont, *aux; int tam; printf("Entre com o tamanho maximo da frase: "); scanf("%d", &tams); /*Aloca uma string com o tamanho tams */ frase = (char*)malloc(tams*sizeof(char)); if(frase == NULL){ printf("Nao conseguiu alocar o espaco informado"); exit(0); } /*faz a leitura da string frase*/ printf("Entre com a frase:\n"); getchar(); /*elimina o \n */ gets(frase); pont = frase; while(*pont){ if(*pont == 'a' || *pont == 'e' || *pont == 'i' ||*pont == 'o' || *pont == 'u') num_vogal++; pont++; } aux = frase; while(*aux){ if(*pont == ' ') letras++; aux++; } tam = strlen(frase); printf("\nTotal de letras da Frase: %d",tam+1); printf ("\nTotal de espacos na Frase: %d", letras); printf("\nA frase tem %d vogais.\n", num_vogal); getchar(); return 0; }
  8. Alguem pode me ajudar identificar erro nesse código aqui? #include <stdio.h> #include <stdlib.h> #define tf 3 typedef struct dados { int RG; char nome [20], rua; int numcasa, idade; }ficha; int main(){ ficha vfichas[10]; int i; int velho=0, novo=999, media=0; for (i=0;i<tf;i++){ printf("\nEntre com o RG: "); scanf("%d",&vfichas[i].RG); printf("\nEntre com o nome: "); scanf("%s", &vfichas[i].nome); printf("\nEntre com o nome da rua: "); scanf("%s", &vfichas[i].rua); getchar(); printf("\nEntre com o numero da casa: "); scanf("%d",&vfichas[i].numcasa); printf("\nEntre com a Idade: "); scanf("%d",&vfichas[i].idade); printf ("\n\n"); } for (i=0;i<tf;i++){ printf("%d\n", vfichas[i].RG); printf("%s\n", vfichas[i].nome); printf("%s\n",vfichas[i].rua); printf("%d\n",vfichas[i].numcasa); printf("%d\n",vfichas[i].idade); printf ("\n\n"); } for (i=0;i<tf;i++){ if (vfichas[i].idade <= novo) novo = vfichas[i].idade; if (vfichas[i].idade >= velho) velho = vfichas[i].idade; media = media + vfichas[i].idade; } /* for (i=0;i<tf;i++){ if (vfichas[i].idade >= velho) velho = vfichas[i].idade; } for (i=0;i<tf;i++){ media = media + vfichas[i].idade; } */ media = media/tf; printf ("\nMais velho: %d\nMais novo: %d\nMedia: %d", velho, novo, media); getchar(); }
  9. Eu preciso fazer um vetor de 10 valores que verifica e imprime os números primos, entretanto meu código apenas imprime o último valor. #include<stdio.h> #include <locale.h> #define tf 10 int main() { setlocale(LC_ALL, "Portuguese"); int num[tf], i, d, cont = 0; for (i=0;i<tf;i++){ printf("Digite um número: "); scanf("%d", &num[i]); } for (i=0;i<tf;i++){ cont = 0; for (d = 2; d <= num[i] / 2; d++) { if (num[i] % d == 0) { cont++; break; } if (cont == 0) printf("\n[%d]: %d PRIMO!",i, num[i]); } } return 0; }
  10. Mas eu tô trabalhando com struct, acho que não dá pra guardar uma informação tipo struct numa variável comum. Deu erro
  11. Será que alguem pode me dar uma luz sobre o porque meu código só tá lendo o nome na primeira vez #include <stdio.h> #include <string.h> #include <locale.h> #define tf 10 struct pessoa { char nome [20]; int idade; }; int main (){ setlocale (LC_ALL, "portuguese"); struct pessoa p[tf]; int i; int menor = 999, maior = 0; for (i=0;i<tf;i++){ printf ("\nEntre com o nome: "); fgets (p[i].nome, 20, stdin); fflush (stdin); printf ("\nEntre com a idade: "); scanf ("%d", &p[i].idade); } for (i=0;i<tf;i++){ if(p[i].idade > maior) maior = i; if(p[i].idade < menor) menor = i; } printf ("\nMais velho!\nNome: %c\nIdade: %d", p[maior].nome, p[maior].idade); printf ("\nMais novo!\nNome: %c\nIdade: %d", p[menor].nome, p[menor].nome); }
  12. @isrnick Eita. Não sei nada de ponteiros nem alocação dinâmica. Sou bem iniciante mesmo. Acho difícil de entender como funciona realmente o insere e o remove. Sempre uso variáveis pra declarar o tamanho dos meus vetores, mas fui refazer as outras provas e fiquei preocupada porque ela geralmente exige um tamanho fixo pro vetor nas questões, tava procurando uma gambiarra mesmo. Não consegui fazer funcionar a resolução da professora adicionado 1 minuto depois daí tô tentando descobrir um jeito diferente de resolver isso adicionado 2 minutos depois Gostei disso! Vou testar adicionado 4 minutos depois @Flávio Pedroza É uma ótima ideia também. Vou testar. Obrigada!!!
  13. Como eu posso "cortar" o vetor quando eu removo uma posição e tô trabalhando direto com o tamanho dele e não uma variável? Por exemplo: void remover (int v[10], int pos){ int i; for (i=pos+1;i<10;i++){ v[i-1] = v[i]; } } Se o tamanho do meu vetor fosse uma variável, bastava eu colocar tl--; que resolveria meu problema. Mas nesse tipo de situação como posso fazer pra não ficar com a última posição dobrada?
  14. Muito mais prático! E eu batendo cabeça pra ler strings
  15. Eita, eu não sabia nada disso. Obrigada moço! To feliz demais porque aprendi muita coisa adicionado 1 minuto depois Eu tava tendo problema quando tinha que ler nomes com espaço usando scanf, por isso que comecei usar fgets. Achei que o scanf que era ruim pra ler strings. Obrigada moço!
  16. Ficaria mais ou menos assim?? Esse foi o mais próximo que eu consegui. Mas ainda assim no printf ele imprime tudo embolado, mistura uma palavra com a outra. Tô achando esse treco muito complicado void leituranomes (char vn[tf][tf]){ int i; for (i=0;i<tf;i++){ printf ("\nEntre com o nome: "); scanf ("%s", &vn[i]); } } void exibenomes (char vn[tf][tf]){ int i; for (i=0;i<tf;i++){ printf ("\nNome: %s", vn[i]); } }
  17. Como eu posso fazer pra criar um vetor de nomes? O exercício a seguir pede um vetor de nomes, uma matriz de consumo e um vetor de preços. Eu preciso criar um vetor char ou int e alocar as strings dentro de um int? Eu sei que scanf não é o mais indicado pra ler strings, fiz apenas pra testar. Mas ele sempre dá erro na hora de exibir #include <stdio.h> #define tf 3 void leituramatriz (int m[tf][tf]){ int i, j; for (i=0;i<tf;i++) for (j=0;j<tf;j++){ printf ("\nEntre com os elementos da matriz: "); scanf ("%d", &m[i][j]); } } void exibematriz (int m[tf][tf]){ int i, j; for (i=0;i<tf;i++){ printf ("\n"); for (j=0;j<tf;j++){ printf ("%d ", m[i][j]); } } } void leituraprecos (double v[tf]){ int i; for (i=0;i<tf;i++){ printf ("\nEntre com o preco: "); scanf ("%lf", &v[i]); } } void exibeprecos (double v[tf]){ int i; for (i=0;i<tf;i++){ printf ("[%d]: %d", i, v[i]); } } void leituranomes (char vn[tf]){ int i; for (i=0;i<tf;i++){ printf ("\nEntre com o nome: "); scanf ("%s", &vn[i]); } } void exibenomes (char vn[tf]){ int i; for (i=0;i<tf;i++){ printf ("\nNome: %s", vn[i]); } } double fechaconta (int m[tf][tf], double vp[tf], char vn[tf], int numesa){ int i; double total; for (i=0;i<tf;i++){ total = total + m[numesa][i]*vp[i]; } printf ("\nMesa: %d\nNome: %s\nTotal a pagar: R$%5.2lf", numesa, vn[numesa], total); return total; } void vaoembora (int m[tf][tf], double vp[tf], char vn[tf]){ int i, j; int total; for (i=0;i<tf;i++){ for (j=0;j<tf;j++){ total = total + m[i][j]*vp[i]; } printf ("\nMesa: %d\nNome: %s\nTotal a pagar: R$%5.2lf", i, vn[i], total); total =0; } } void faturamento (int m[tf][tf], double vp[tf]){ int i, j; double total; for (i=0;i<tf;i++){ for (j=0;j<tf;j++){ total = total + m[i][j]*vp[i]; } } printf ("\nFaturamento total: R$%5.2lf", total); } int main (){ int m[tf][tf]; char vn[tf]; double vp[tf]; int opcao=0, numesa; double totaldocliente=0; while (opcao != 10){ printf ("\n\n################# MENU #####################"); printf ("\n1 - Carrega matriz de consumo"); printf ("\n2 - Exibe a matriz de consumo"); printf ("\n3 - Carrega vetor de precos"); printf ("\n4 - Exibe vetor de precos"); printf ("\n5 - Carrega vetor de nomes"); printf ("\n6 - Exibe vetor de nomes"); printf ("\n7 - Fechar a conta de um cliente"); printf ("\n8 - Calcular a conta de cada cliente"); printf ("\n9 - Faturamento final"); printf ("\n10 - Sair"); printf ("\nQual a sua opcao?"); scanf ("%d", &opcao); switch (opcao){ case 1: leituramatriz (m); break; case 2: exibematriz (m); break; case 3: leituraprecos (vp); break; case 4: exibeprecos (vp); break; case 5: leituranomes (vn); break; case 6: exibenomes (vn); break; case 7: printf ("\nQual o nro da mesa que deseja fechar?"); scanf ("%d", &numesa); totaldocliente = fechaconta (m, vp, vn, numesa); break; case 8: vaoembora (m, vp, vn); break; case 9: faturamento (m, vp); break; } } }
  18. Como eu posso fazer pro vetor não apenas inserir o valor na posição determinada mas também remaneje as posições? O máximo que eu consegui foi até aqui, mas ele só substitui o valor. Por exemplo um vetor de 5 posições: 10 20 30 40 50 Insere o número 15 na posição 1 ficaria assim 10 15 20 30 40 /* Faça um programa para ler um vetor de TL elementos. O programa deverá inserir um novo elemento em uma determinada posição do vetor. Os elementos devem ser remanejados para a inserção do novo elemento. Veja explicação abaixo*/ #include <stdio.h> #define tf 50 void levetor (int vt[], int tam){ int i; for (i =0; i<tam; i++){ printf ("\n[%d] = ", i); scanf ("%d", &vt[i]); } } void insere (int vt[], int tam, int pos, int nro){ int i; for(i = tam; i > pos; i--){ vt[i] = vt[i-1]; } vt[pos] = nro; for(i=0; i<tam+1; i++){ printf("\n[%d] = %d", i, vt[i]); } } int main (){ int vetor[tf]; int tl, pos; int nro; printf ("Entre com o tamanho do vetor: "); scanf ("%d", &tl); printf ("\nLeitura do Vetor"); levetor (vetor, tl); printf ("Entre com o numero que deseja inserir: "); scanf ("%d", &nro); printf ("Entre com a posicao em que deseja inserir o novo valor: "); scanf ("%d", &pos); printf ("Apos a inserção"); insere (vetor, tl, pos, nro); return 0; } adicionado 6 minutos depois No caso precisam dar um passinho pra frente e abrir espaço pro novo valor. Quase oposto ao que o remove faz, mas eu não consigo entender, é abstrato demais. Só sei remove por decoreba mesmo. Preciso de outro for pra remanejar os valores? Tem alguma forma mais simples e curta de fazer o insere? SOCORRO.
  19. Gabbie1

    C Struct em C, Loop

    Entendi. Deve dar um problemão mesmo Vou logo tratar de parar de usar, já que tô perto de ter que estudar ponteiros etc adicionado 2 minutos depois Por isso eu sempre tinha que declarar minhas strings com 1 caracter a mais senão dava problema. Achei que isso fosse com strings no geral.
  20. Gabbie1

    C Struct em C, Loop

    Obrigada!! Qual o problema com o fflush? Muita gente me diz pra não usar mas eu não entendo o porque. Sou iniciante, até agora ele não me deu problema. O que ele faz exatamente?
  21. Gabbie1

    C Struct em C, Loop

    Sempre que esse código entra no 2 loop pra fazer a leitura do vetor ele para de funcionar mas aparentemente não encontro erro algum. Onde posso ter errado? #include <stdio.h> #include <string.h> #define tf 5 struct produto { int cod; char nome[15]; double preco; int qtdade; }; void leitura (struct produto prod[tf]){ int i; for (i=0;i<tf;i++){ printf ("\nEntre com o codigo do produto: "); scanf ("%d", &prod[i].cod); printf ("\nEntre com o nome do produto: "); fflush (stdin); fgets (prod[i].nome,15,stdin); printf ("\nEntre com o preco do produto: "); scanf ("%lf", &prod[i].preco); printf ("\nEntre com a quantidade disponivel do produto: "); scanf ("%d", prod[i].qtdade); printf ("\n\n________________________________\n\n"); } } void exibe (struct produto prod [tf]){ int i; for (i=0;i<tf;i++){ printf ("\nCodigo do produto: %d", prod[i].cod); printf ("\nNome do produto: %s", prod[i].nome); printf ("\nPreco: %.2lf", prod[i].preco); printf ("\nQuantidade: %d", prod[i].qtdade); printf ("\n\n______________________________________\n\n"); } } void compra (struct produto prod [tf]){ int i; int pos = -1; int codigo, pedido; do { printf ("\nQual o codigo do produto que deseja? "); scanf ("%d", &codigo); printf ("\nQual a quantidade de produtos que deseja? "); scanf ("%d", &pedido); for (i=0;i<tf;i++){ if (prod[i].cod == codigo) pos = i; } if (pos == -1) printf ("\nNao achou!"); else { if (prod[pos].qtdade < pedido) printf ("\nQuantidade indisponivel!"); else { prod[pos].qtdade = prod[pos].qtdade - pedido; printf ("\nCompra efetuada com sucesso! Novo estoque do produto %s eh de %d", prod[pos].nome, prod[pos].qtdade); } } } while (codigo != 0); } int main (){ struct produto prod[tf]; int opcao =0; while (opcao != 4){ printf ("\n\n################# MENU ###############"); printf ("\n1 - Cadastra produtos"); printf ("\n2 - Exibe produtos"); printf ("\n3 - Fazer uma compra"); printf ("\n4 - Sair"); printf ("\nQual a sua opcao? "); scanf ("%d", &opcao); switch (opcao){ case 1: leitura (prod); break; case 2: exibe (prod); break; case 3: compra (prod); break; default: printf ("\nOpcao invalida!"); } } }
  22. @Flávio Pedroza Eita, obrigada!
  23. Esse código tá dando erro e eu não consigo identificar o quê exatamente tem de errado. E no exercício c, tem como colocar um vetor dentro de uma matriz? Como? Penso que posso criar um for para o vetor dentro dos 2 for de leitura da matriz, por exemplo: /*APENAS COMO EXEMPLO, A MATRIZ QUE O EXERCICIO PEDE É UMA 12x3, esse é apenas pra mostrar minha lógica*/ void leituramatrizp (struct pessoa m_pessoa[20][2], struct data vet_data[20]){ int i, j, x; for (i=0;i<20;i++){ for (j=0; j<2; j++){ printf ("\nEntre com o nome: "); fflush (stdin); fgets (m_pessoa[i].nome, 10, stdin); for (x=0; x<20; x++){ printf ("\nEntre com o dia: "); scanf ("%d", &vet_data[x].dia); printf ("\nEntre com o mes: "); scanf ("%d", &vet_data[x].mes); printf ("\nEntre com o ano: "); scanf ("%d", &vet_data[x].ano); } printf ("\n\n__________________________________\n"); } } } Criar 3 estruturas de dados para atender o seguinte: a) A primeira estrutura deve conter o nome de uma pessoa com a respectiva data de nascimento (ver struct´s data e pessoa abaixo e também a Matriz 20x2) b) A segunda estrutura contêm o nome do signo com as datas (dia e mês) de inicio e fim e descrição das características correspondentes ao signo (ver matriz do Horoscopo Ocidental abaixo). c) A terceira estrutura que contem o nome do signo no horóscopo chinês, um vetor contendo 6 anos e a descrição das características correspondente ao signo (Apesar do horóscopo chinês considerar também dia e mês de nascimento, para este exemplo, somente nos preocuparemos com o ano). OBS: para esse exercício será necessário criar struct e também, vetores contendo struct #include <stdio.h> #include <string.h> struct data { int dia; int mes; int ano; }; struct pessoa { char nome [10]; struct data nascimento; }; void leituramatrizp (struct pessoa m_pessoa2[20][2]){ int i, j; for (i=0;i<20;i++){ for (j=0; j<2; j++){ printf ("\nEntre com o nome: "); fflush (stdin); fgets (m_pessoa2[i].nome, 10, stdin); printf ("\nEntre com o dia: "); scanf ("%d", &m_pessoa2[i].dia); printf ("\nEntre com o mes: "); scanf ("%d", &m_pessoa2[i].mes); printf ("\nEntre com o ano: "); scanf ("%d", &m_pessoa2[i].ano); printf ("\n\n__________________________________\n"); } } } void exibematrizp (struct m_pessoa3[20][2]){ int i; int j; for (i=0; i<20;i++){ for (j=0; j<2; j++){ printf ("\nNome: %s", m_pessoa3[i].nome); printf ("\nDia: %d", m_pessoa3[i].dia); printf ("\nMes: %d", m_pessoa3[i].mes); printf ("\nAno: %d", m_pessoa3[i].ano); } } } int main (){ struct pessoa m_pessoa[20][2]; struct data vet_data [20]; int op = 0; while (op != 3 ){ printf ("\n\n############### MENU ######################\n"); printf ("\n1 - Carregar a matriz de pessoas"); printf ("\n2 - Exibir a matriz de pessoas"); printf ("\n3 - Sair"); printf ("\nQual a sua opcao? "); scanf ("%d", &op); switch (op){ case 1: leituramatrizp (m_pessoa, vet_data); break; case 2: exibematrizp (m_pessoa, vet_data); break; } } }

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