Eduardo_Braz
-
Posts
98 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Eduardo_Braz
-
-
if(cont >= k){ printf("NAO\n"); for(i = 1; i <= n; i++){ if(vetor[i] <= 0){ printf("%d\n", vetor[i]); } } }
O erro está nessa parte o iniciado pede os índices das ocorrências quando a condição for verdadeira.
Quando eu troco o vetor somente por i ele imprime 1 e o 4 não entendo porque alguém poderia me ajudar nessa parte.
Entrada:
4 1
0 -1 2 1 (Índice 1 é o 0)
(Índice 2 é o -1)
(Índice 3 é o 2)
(Índice 4 é o 1)
Quando eu faço a troca:
Saí assim:
1
4
O correto pelo o que eu coloquei acima séria:
1
2
Eu teria que colocar em ordem decrescente tudo o que eu já testei não funcionou, gostaria ver com vocês.
Por fim ficaria assim:
2
1
- 1
-
@devair1010Não conseguir pegar os índices.
adicionado 9 minutos depois7 minutos atrás, Eduardo_Braz disse:@devair1010Não conseguir pegar os índices.
ele só pega o 1 e 4 quando o teste:
Entrada:
4 2
0 -1 2 1
Saída:
1 2
e ordenar o índice em ordem decrescente
adicionado 10 minutos depois- 1
-
agora, devair1010 disse:
@Eduardo_Braz o indice é o valor da variável i que controla o loop for .
Assim se eu colocar para imprimir o i então pode dá certo ?
adicionado 4 minutos depois4 minutos atrás, devair1010 disse:@Eduardo_Braz o indice é o valor da variável i que controla o loop for .
Fiz o teste mais não funcionou.
- 1
-
1 minuto atrás, devair1010 disse:
@Eduardo_Braz seu código está bom , e para postar seu código é melhor usar o botão <> que está desenhado lá na barra de ferramentas da janela de postar
pois senão seu código fica faltando alguns caracteres como os [ i ] que sumiram do seu código , e se colocar em ordem decrescente resolve então seu código com algumas modificações poderia ser assim :
#include <stdio.h> #include <conio.h> void troca(int* a, int*b){ int aux; aux=*a; *a=*b; *b=aux; } void insertionSort(int n, int vet[]){ int i,j,aux,menor, indMenor ; for (i=0; i<n-1; i++ ){ for(j=i+1;j<n;j++ ){ if( vet[j] > vet[i] ){ aux = vet[i] ; vet[i] = vet[j] ; vet[j] = aux ; } } } } int main(){ int n, k, i, j, cont, vetor[1000]; while(1){ scanf("%d %d", &n, &k); if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){ break; } } for(i = 0; i < n; i++){ scanf("%d", &vetor[i]); } for(i = 0; i < n; i++){ if(vetor[i] > 0){ cont++; } } if(cont >= k){ printf("NAO\n"); for(i = 0; i < n; i++){ insertionSort(n, vetor); if(vetor > 0){ printf("%d\n", vetor[i]); } } } else{ printf("SIM"); } getch(); }
Muito obrigado pela a dica de postagem, vou estudar o seu código aqui muito obrigado mesmo
adicionado 3 minutos depois2 minutos atrás, Eduardo_Braz disse:if(cont >= k){ printf("NAO\n"); for(i = 0; i < n; i++){ insertionSort(n, vetor); if(vetor > 0){ printf("%d\n", vetor[i]); } } }
nessa parte tem como eu pegar o indice onde os números aparece?
- 1
-
Eu meio que arrumei porém:
A saída que eu conseguir com a entrada sendo
10 4
-93 -86 49 -62 -90 -63 40 72 11 67:NAO
1
3
4
5
10
e a saída que era para ser:
Saída
NAO
65
4
2
1
#include <stdio.h>
int main(){
int n, k, i, j, cont, vetor[1000], aux, po;
while (1){
scanf("%d %d", &n, &k);
if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){
break;
}
}for(i = 0; i < n; i++){
scanf("%d", &vetor);
}for(i = 0; i < n; i++){
if(vetor <= 0){
cont++;
}
}if(cont >= k){
printf("NAO\n");
for(i=1; i<=n; i++){
if (vetor <= 0){
aux = vetor;
po=i;
printf("%d\n", po);
}
}
}else{
printf("SIM\n");
}
}- 1
-
Eu encontrei o erro só que eu não sei resolver é o seguinte ele tem que achar o índice dos números igual ou menor a ZERO só que não estou conseguindo pegar os mesmo...
adicionado 1 minuto depoisagora, Eduardo_Braz disse:Eu encontrei o erro só que eu não sei resolver é o seguinte ele tem que achar o índice dos números igual ou menor a ZERO só que não estou conseguindo pegar os mesmo...
Em ordem decrescente..
- 1
-
15 horas atrás, Eduardo_Braz disse:
#include <stdio.h>
void troca(int* a, int*b){
int aux;
aux=*a;
*a=*b;
*b=aux;
}
void insertionSort(int n, int vet[]){
int i,j, menor, indMenor;
for (i=0; i<n-1; i++) {
menor=vet;
indMenor=i;
for(j=i;j<n;j++){
if (vet[j] > menor) {
menor=vet[j];
indMenor=j;
}
}
troca(&vet, &vet[indMenor]);
}
}
int main(){
int n, k, i, j, cont, vetor[1000];
while (1){
scanf("%d %d", &n, &k);
if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){
break;
}
}
for(i = 0; i < n; i++){
scanf("%d", &vetor);
}
for(i = 0; i < n; i++){
if(vetor > 0){
cont++;
}
}
if(cont >= k){
printf("NAO\n");
for(i = 0; i < n; i++){
insertionSort(n, vetor);
if(vetor > 0){
printf("%d\n", vetor);
}
}
}
else{
printf("SIM");
}
}De 11 teste passou em apenas 4
- 1
-
#include <stdio.h>
void troca(int* a, int*b){
int aux;
aux=*a;
*a=*b;
*b=aux;
}
void insertionSort(int n, int vet[]){
int i,j, menor, indMenor;
for (i=0; i<n-1; i++) {
menor=vet;
indMenor=i;
for(j=i;j<n;j++){
if (vet[j] > menor) {
menor=vet[j];
indMenor=j;
}
}
troca(&vet, &vet[indMenor]);
}
}
int main(){
int n, k, i, j, cont, vetor[1000];
while (1){
scanf("%d %d", &n, &k);
if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){
break;
}
}
for(i = 0; i < n; i++){
scanf("%d", &vetor);
}
for(i = 0; i < n; i++){
if(vetor > 0){
cont++;
}
}
if(cont >= k){
printf("NAO\n");
for(i = 0; i < n; i++){
insertionSort(n, vetor);
if(vetor > 0){
printf("%d\n", vetor);
}
}
}
else{
printf("SIM");
}
}De 11 teste passou em apenas 4
- 1
-
Um professor X tem uma turma de N alunos. Frustrado com a falta de disciplina, ele decide cancelar a
aula se menos de K alunos estão presentes quando a aula começa. Dado o tempo de chegada de cada aluno,
determinar se a aula é cancelada. Caso a aula não seja cancelada, imprima uma lista com os alunos que
chegaram antes do início da aula em ordem contrária à mostrada na entrada.Entrada
A primeira linha apresenta dois números inteiros separados por um espaço: N (alunos da turma) e K
(mínimo de presenças para que a aula não seja cancelada), com 0 ≤ N, K, ≤ 1000. Na segunda linha há
N inteiros separados por espaços (A1 , A2 ,... , An ) descrevendo os tempos de chegada para cada aluno.
Suponha que esta ordem seja a mesma da lista de presença do professor, com o primeiro aluno descrito na
entrada sendo o aluno 1 e assim por diante. Nota: horários de chegada não-positivos (Ai ≤ 0) indicam que
o aluno chegou cedo ou na hora; horários de chegada positivos (Ai>0) indicam o aluno chegou Ai minutos
tarde.Saída
O programa apresenta uma mensagem com a palavra “SIM” se a aula é cancelada, e “NAO” caso
contrário. Após imprimir a mensagem quebre uma linha. Se a aula não for cancelada, imprima os M alunos
presentes antes do início da aula (ou seja, com Ai ≤ 0) na ordem contrária da lista de entrada.
- 1
-
Por Favor
O erro é o seguinte quando tem um número negativo ele está imprimindo exemplo de entrada e sua divada saída:
A condição do não e sim é a seguinte se o numero k nesse caso de teste é o 2.
O vetor tem que conter número maior que ZERO
Entrada:
4 2
0 -1 2 1
Saída:
NAO
2
1
Código
#include <stdio.h>
void troca(int* a, int*b){
int aux;
aux=*a;
*a=*b;
*b=aux;
}void insertionSort(int n, int vet[]){
int i,j, menor, indMenor;
//para cada elemento i do vetor
for (i=0; i<n-1; i++) {
menor=vet;
indMenor=i;
//procurar o i-esimo menor guardar o seu valor e de seu indice, respectivamente em menor e indMenor
for(j=i;j<n;j++){
if (vet[j] > menor) {
menor=vet[j];
indMenor=j;
}
}
//O i-esimo menor esta na variavel menor trocar de posicao os elementos vet com vet[indMenor]
troca(&vet, &vet[indMenor]);
}
}int main(){
int n, k, i, j, cont, vetor[1000];while (1){
scanf("%d %d", &n, &k);
if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){
break;
}
}
for(i = 0; i < n; i++){
scanf("%d", &vetor);
}
for(i = 0; i < n; i++){
if(vetor > 0){
cont++;
}
}
if(cont >= k){
printf("NAO\n");
for(i = 0; i < n; i++){
insertionSort(n, vetor);
printf("%d\n", vetor);
}
}
else{
printf("SIM\n");
}
}- 1
-
@devair1010 Pode só que eu não sei matriz
adicionado 6 minutos depois5 minutos atrás, Eduardo_Braz disse:@devair1010 Pode só que eu não sei matriz
Não tenho ideia alguma de Matriz
- 1
-
@devair1010 Foi baseado eu acho
- 1
-
Preciso de ajuda
- 1
-
Dada uma sequência de N números entre 0 e 100. Determine qual o valor de maior frequência. Caso
haja mais de um valor tenha a maior frequência, mostre o menor deles.
Entrada
Na primeira linha há um inteiro N, 1 N 1000000, representando a quantidade números. Nas N
linhas seguintes haverá um número natural entre 0 e 100 inclusive por linha.
Saída
O programa gera apenas duas linhas. Na primeira dela mostre qual foi o valor com maior frequência. E
na segunda linha, mostre a quantidade de vezes que esse número apareceu na sequência de valores. Após
a impressão deste último valor quebre uma linha. Caso haja mais de um valor tenha a maior frequência,
mostre o menor deles.
Exemplo
Entrada
10
1
7
4
29
7
4
7
8
7
29
Saída
7
4Código <- Não sei porque funciona
//Programa 13
#include <stdio.h>
int main(){
int vetor[1000000], i, j, n, aux, k, total;
while(1){
scanf("%d",&n);
if(n <= 1000000 && n > 0){
break;
}
}
for (i = 0; i < n; i++){
scanf("%d", &vetor);
}
for (i = 0; i < n; i++){
for(j = i + 1; j < n; j++){
if (vetor == vetor[j]){
aux = vetor[j];
}
}
}
for (k = 0; k < n; k++){
if (aux == vetor[k]){
total++;
}
}
printf("%d", aux);
printf("\n%d", total);
}- 1
- 1
-
@arfneto Muito obrigado
- 1
-
@AdrianoSiqueira Muito obrigado pela a sua ajuda
-
Citação2 horas atrás, Eduardo_Braz disse:
Alguém poderia me ajudar com essa o código está praticamente feito falta apenas uma correção.
Faça um programa que receba vários vetores e informe para cada um deles qual o maior elemento e o
índice (da primeira ocorrência) em que encontra-se tal elemento.
Entrada
O programa possui vários casos de testes. A primeira de cada caso contem um inteiro N, 1 < N ≤ 10000,
representando o tamanho do vetor. A segunda linha conterá N inteiros entre 0 e 1000, representando os N
elementos do vetor. A entrada termina quando N=0.
Saída
O programa gera N linhas de saída, com dois inteiros separados por um espaço em branco. O primeiro
inteiro é o índice da primeira ocorrência do maior elemento do vetor e o segundo inteiro é o maior valor do
vetor. Após a impressão de cada saída, inclusive a última, quebre uma linha.
ExemploEntrada
10
6 54 7 3 73 6 67 23 6 9
5
9 8 7 6 5
8
0 1 2 3 4 5 6 7
0Saída
4 73
0 9
7 7Código <- O erro é o seguinte se tiver o maior número no mesmo vetor ele imprime o índice dos outros também não apenas o primeiro
//Programa 05
#include <stdio.h>
#include <limits.h>
int main(){
int n, vetor[1000], maior, menor, i, j, k, aux;
maior = INT_MIN;
aux = 1;
while(aux > 0){
scanf("%d", &n);
for (i = 0; i < n; i++){
scanf("%d", &vetor);
}
for (i = 0; i < n; ++i) {
if (i == 0){
maior = vetor;
}else if(vetor > maior){
maior = vetor;
}
}
for (k = 0; k < n; k++)
{
if (maior == vetor[k])
{
printf("%d %d\n", k, maior);
}
}
aux = n;
}
}
Atualizei o Código mais ainda tem um erro ele imprime se tiver um número igual o maior na primeira entrada ainda imprime ele é só isso pelo os teste que eu fiz
adicionado 1 minuto depois2 horas atrás, Eduardo_Braz disse:Alguém poderia me ajudar com essa o código está praticamente feito falta apenas uma correção.
Faça um programa que receba vários vetores e informe para cada um deles qual o maior elemento e o
índice (da primeira ocorrência) em que encontra-se tal elemento.
Entrada
O programa possui vários casos de testes. A primeira de cada caso contem um inteiro N, 1 < N ≤ 10000,
representando o tamanho do vetor. A segunda linha conterá N inteiros entre 0 e 1000, representando os N
elementos do vetor. A entrada termina quando N=0.
Saída
O programa gera N linhas de saída, com dois inteiros separados por um espaço em branco. O primeiro
inteiro é o índice da primeira ocorrência do maior elemento do vetor e o segundo inteiro é o maior valor do
vetor. Após a impressão de cada saída, inclusive a última, quebre uma linha.
ExemploEntrada
10
6 54 7 3 73 6 67 23 6 9
5
9 8 7 6 5
8
0 1 2 3 4 5 6 7
0Saída
4 73
0 9
7 7Código <- O erro é o seguinte se tiver o maior número no mesmo vetor ele imprime o índice dos outros também não apenas o primeiro
//Programa 05
#include <stdio.h>
#include <limits.h>
int main(){
int n, vetor[1000], maior, menor, i, j, k, aux;
maior = INT_MIN;
aux = 1;
while(aux > 0){
scanf("%d", &n);
for (i = 0; i < n; i++){
scanf("%d", &vetor);
}
for (i = 0; i < n; ++i) {
if (i == 0){
maior = vetor;
}else if(vetor > maior){
maior = vetor;
}
}
for (k = 0; k < n; k++)
{
if (maior == vetor[k])
{
printf("%d %d\n", k, maior);
}
}
aux = n;
}
}
Atualizei o Código mais ainda tem um erro ele imprime se tiver um número igual o maior na primeira entrada ainda imprime ele é só isso pelo os teste que eu fiz
-
Alguém poderia me ajudar com essa o código está praticamente feito falta apenas uma correção.
Faça um programa que receba vários vetores e informe para cada um deles qual o maior elemento e o
índice (da primeira ocorrência) em que encontra-se tal elemento.
Entrada
O programa possui vários casos de testes. A primeira de cada caso contem um inteiro N, 1 < N ≤ 10000,
representando o tamanho do vetor. A segunda linha conterá N inteiros entre 0 e 1000, representando os N
elementos do vetor. A entrada termina quando N=0.
Saída
O programa gera N linhas de saída, com dois inteiros separados por um espaço em branco. O primeiro
inteiro é o índice da primeira ocorrência do maior elemento do vetor e o segundo inteiro é o maior valor do
vetor. Após a impressão de cada saída, inclusive a última, quebre uma linha.
ExemploEntrada
10
6 54 7 3 73 6 67 23 6 9
5
9 8 7 6 5
8
0 1 2 3 4 5 6 7
0Saída
4 73
0 9
7 7Código <- O erro é o seguinte se tiver o maior número no mesmo vetor ele imprime o índice dos outros também não apenas o primeiro
//Programa 05
#include <stdio.h>
#include <limits.h>
int main(){
int n, vetor[1000], maior, menor, i, j, k, aux;
maior = INT_MIN;
aux = 1;
while(aux > 0){
scanf("%d", &n);
for (i = 0; i < n; i++){
scanf("%d", &vetor);
}
for (i = 0; i < n; ++i) {
if (i == 0){
maior = vetor;
}else if(vetor > maior){
maior = vetor;
}
}
for (k = 0; k < n; k++)
{
if (maior == vetor[k])
{
printf("%d %d\n", k, maior);
}
}
aux = n;
}
}
- 1
-
Em 19/11/2019 às 01:19, brund321 disse:
@Eduardo_BrazOi Eduardo, segue algumas observações:
while(1){ scanf("%d",&n); if(n <= 1000){ break; } } //no while você precisa quebrar quando o n for entre 1 e 1000, nesse caso se o n fosse -10 ele "aceitaria" e quebraria o loop o que não é o que você deseja //então você também precisa verificar se o n é maior que 0 para quebrar o loop //ficaria assim: while(1){ scanf("%d",&n); if(n <= 1000 && n > 0){ break; } }
for (i = 0; i < n; i++){ scanf("%d", &vetor); } //aqui o correto para colocar o valor dentro do vetor não seria assim ? scanf("%d", &vetor[i]);
for (j = 0; j < n; j++){ if(k >= vetor[j]){ total ++; } } //aqui você precisa passar por cada valor do vetor e verificar se esse valor é maior ou igual a k //você está verificando se k é maior ou igual que o valor do vetor, você está fazendo exatamente o contrário //ficaria assim for (j = 0; j < n; j++){ if(vetor[j] >= k){ total++; } }
Abraço.
Muito obrigado vou estudar ele
- 1
-
@brund321 Muito obrigado
adicionado 5 minutos depoisadicionado 14 minutos depois@brund321 Ele ainda está com erro no último for
#include <stdio.h>
int main(){
int aux, v, n, vetor[1000], i, k, j, total, l;
while(1){
scanf("%d",&n);
if(n <= 1000){
break;
}
}
for (i = 0; i < n; i++){
scanf("%d", &vetor);
}
scanf("%d", &k);
for (j = 0; j < n; j++){
if(k >= vetor[j]){
total ++;
}
}
printf("%d\n", total);
}adicionado 14 minutos depois14 minutos atrás, Eduardo_Braz disse:for (j = 0; j < n; j++){
if(k >= vetor[j]){
total ++;
}
}Nesse
- 1
-
@brund321 Muito obrigado vou fazer aqui para ver eu consigo
-
@brund321 Estou bugado não estou conseguindo realizar essa ainda
-
@brund321 Assim compreendi
adicionado 9 minutos depois12 minutos atrás, brund321 disse:@Eduardo_Braz Veja essa parte com atenção, se o j vai ter o valor de n (j = n), como o j vai ser maior que o n(j > n)?
for(j = n; j > n; j--){ }
Assim?
#include <stdio.h>
int main(){
int aux, v, n, vetor[1000], i, k, j, total, l;
while(v == 0){
scanf("%d",&aux);
if(aux >= 1 && aux <= 1000){
n = aux;
v = 1;
}
else{
scanf("%d",&aux);
}
}
for (i = 0; i < n; i++){
scanf("%d", &vetor);
}
scanf("%d", &k);
for (j = n; j >= 0; j--)
{
if (k >= vetor[j])
{
total++;
}
}
printf("%d\n", total);
} -
@brund321 Não conseguir entender
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
tentando reinstalar a rom do meu Samsung Galaxy On7
em Smartphones, celulares, tablets e apps
Postado
Estou tentando reinstalar a rom do meu android modelo SM-G600FY é um Samsung Galaxy On7 toda vez que eu tento tá esse erro.