-
Posts
46 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Gabbie1 postou
-
@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.
-
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; }
-
#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.
-
Acabou que com muita luta eu consegui fazer voltar
-
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?
-
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; }
-
Obrigadaaaaaaaaa
-
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; }
-
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(); }
-
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; }
-
Mas eu tô trabalhando com struct, acho que não dá pra guardar uma informação tipo struct numa variável comum. Deu erro
-
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); }
-
@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!!!
-
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?
-
Muito mais prático! E eu batendo cabeça pra ler strings
-
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!
-
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]); } }
-
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; } } }
-
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.
-
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.
-
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?
-
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!"); } } }
-
@Flávio Pedroza Eita, obrigada!
-
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