Pesquisar na Comunidade
Mostrando resultados para as tags ''vetor''.
Encontrado 105 registros
-
Estou com um problema na seguinte questão: - Faça um programa que leia um vetor de 10 posições e verifique se existem valores iguais e os escreva. Meu código até o momento: #include <stdio.h> #include <stdlib.h> int main() { int v[10]; int cont, i; char flag='n'; for(cont=0;cont<10;cont++){ printf("%d numero: ",cont+1); scanf("%d",&v[cont]); } printf("\nNumero que se repete: "); for(cont=0;cont<10;cont++){ for(i=cont+1;i<10;i++){ if(v[cont]==v){ flag='s'; } } if(flag=='s') printf("%d ",v[cont]); flag='n'; } printf("\n"); system("pause"); return 0; } Se eu fizer um teste com apenas dois numeros repetidos ele funciona normal. EX: Digito: 1, 1, 2, 3, 4, 5, 6, 7, 8, 9 Numero que se repete: 1. Até ai tudo bem, o problema é quando o numero se repete mais de duas vezes. EX: Digito: 1, 1, 1, 2, 3, 4, 5, 6, 7, 8 Numero que se repete: 1, 1. Se alguém poder ajudar agradeço!
-
Olá, eu estou com dificuldades neste problema: http://br.spoj.com/problems/PROIBIDO/ 1) Primeiramente tentei inserir os elementos ordenadamente, assim eu teria um vetor ordenado e apenas utilizava a busca binária. Porém tomei "Tempo Limite Excedido". 2) Então para diminuir o vetor eu tentei impedir que elementos repetidos sejam adicionados, quando o algoritmo encontrava a posição correta para a inserção eu verificava se alí não existia um elemento igual, caso sim eu não o inseria novamente. Porém a resposta foi a mesma 3) Também tentei colocar os elementos no vetor na ordem em que eram informados e realizar uma busca sequencial. O problema persiste. Fiquei um bom tempo, mas não consegui sair do TLE Muito Obrigado Obs: código do subprograma que insere elementos ordenadamente int insere_ordena do(int *v ,int x, int n){ int i,j; for (i=0;((i<n)&&(v<x));i++); //procura o local da inserção if ((v==x)) //caso já tenha um elemento igual alí return 1; for (j=n;j>i;j--) // desloca os elementos necessários v[j]=v[j-1]; v=x; // insere return 0; }
- 1 resposta
-
- numeros proibidos
- spoj
- (e %d mais)
-
Olá, eu estou com dificuldades neste problema: http://br.spoj.com/problems/PROIBIDO/ 1) Primeiramente tentei inserir os elementos ordenadamente, assim eu teria um vetor ordenado e apenas utilizava a busca binária. Porém tomei "Tempo Limite Excedido". 2) Então para diminuir o vetor eu tentei impedir que elementos repetidos sejam adicionados, quando o algoritmo encontrava a posição correta para a inserção eu verificava se alí não existia um elemento igual, caso sim eu não o inseria novamente. Porém a resposta foi a mesma 3) Também tentei colocar os elementos no vetor na ordem em que eram informados e realizar uma busca sequencial. O problema persiste. Fiquei um bom tempo, mas não consegui sair do TLE Muito Obrigado Obs: código do subprograma que insere elementos ordenadamente int insere_ordenado(int *v,int x, int n){ int i,j; for (i=0;((i<n)&&(v<x));i++); //procura o local da inserção if ((v==x)) //caso já tenha um elemento igual alí return 1; for (j=n;j>i;j--) // desloca os elementos necessários v[j]=v[j-1]; v=x; // insere return 0; }
- 1 resposta
-
- numeros proibidos
- spoj
- (e %d mais)
-
Boa tarde, estou tentando realizar uma programação em C++ utilizando a IDE CodeBlocks. Porém algumas dúvidas surgiram na seguinte atividade. Elaborar um programa que leia e mostre o conteúdo de dois vetores (A e B ), de 7 posições cada. Posteriormente, criem os vetores Z, Y, T em que: Z é a soma dos elementos do Vetor A com o Vetor B; Y é a subtração entre o Vetor A com o Vetor B; T é o produto entre o Vetor A e o Vetor B; e Mostrar cada um dos vetores resultantes. Utilizando a IDE eu cheguei neste resultado: #include <stdio.h> int main() { int a[7], b[7], z[7], y[7], t=0, i; for (i=0; i<7; i++) { printf("\n Insira o elemento A[%d]: ", i);//Vetor A sendo alimentado scanf("%d", &a); } printf("Valores do Vetor A:\n");// Resultado do Vetor A for (i=0; i<7; i++) printf("\tA[%d]: %d", i, a); for (i=0; i<7; i++) { printf("\n Insira o elemento B[%d]: ", i);//Vetor B sendo alimentado scanf("%d", &b); } printf("\n Valores do Vetor B:\n"); // Resultado do Vetor B for (i=0; i<7; i++) printf("\tB[%d]: %d", i, b); for (i=0; i<7; i++) z = a + b; printf("\nValores do Vetor Z.(A + B ) :\n"); //Soma dos valores dos Vetores A e B for (i=0; i<7; i++) printf("\tZ[%d]: %d", i, z); for (i=0; i<7; i++) y = a - b; printf("\nValores do Vetor Y.(A - B ) :\n"); // Diferença dos valores dos Vetores A e B for (i=0; i<7; i++) printf("\tY[%d]: %d", i, y); for (i=0; i<7; i++) t+= a * b; printf("\nVetor A * Vetor B = %d\n", t);// Multiplicação dos valores dos Vetores A e B return 0; } CREIO QUE TEM ALGUMA COISA ERRADA, pois o resultado da multiplicação está dando 105 Alguém poderia me dar uma mão nesta?
-
Estava eu treinando programação em linguagem C. Monte um minimundo de como irei fazer este programa. Mas, para a minha infelicidade, eu estou tendo dúvida no meu próprio minimundo que criei. Neste minimundo, eu planejei usar vetores e matrizes. Abaixo eu colocarei as regras e a minha tentativa que tive de fazer (até certo ponto aonde parei...). (Estou usando o programa DEV C++, versão 5.0.0.9) -------------------------------------------------------------------------------------------- Construir um programa em C que leia o código, o nome e o preço de 10 produtos e armazene esses dados em três vetores, um para o código, um para o nome e um para o preço e imprima um relatório com o código, nome, preço e novo preço dos produtos, seguindo as regras a seguir: - Os produtos com preço abaixo de R$ 100,00 serão atualizados em 12% - Os produtos com preço igual ou superior a R$ 100,00 serão atualizados em 15% - Imprimir o nome do produto com maior preço atualizado - Imprimir o código do produto com menor preço atualizado Observações: - Não permitir preço negativo ou zero - Declaração e leitura dos vetores -------------------------------------------------------------------------------------------- Abaixo segue o meu programa: #include <stdio.h> main() { int cod[10], i; char nome[10]; float prc[10]; for (i = 0 ; i <= 9 ; i++) { printf("\nDigite o codigo do produto %d: ", i + 1); scanf("%d", &cod); printf("\nDigite o nome do produto %d: ", i + 1); gets(nome); printf("\nDigite o preço do produto %d: ", i + 1); scanf("%d", &prc); if (prc < 100) prc = prc*1.12; else prc = prc*1.15; printf("\nCodigo do produto: %d", cod); printf("\nNome do produto: %s", nome); printf("\nO preço atualizado é: %.1f\n\n", prc); } getch(); }