-
Posts
45 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que diogo moura postou
-
De string para int, ultilizo a função atoi, não sei de int para string
-
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Nossa, já tinha desistido dessa questão, você falou que Caracteres em branco não contam, como eu faria isso, para ler uma string eu só conheço scanf("%s"), scanf("%[^\n]"), gets(), fgest(), qual você ultilizou@Mauro Britivaldo -
A questão pede que eu ordene por distância(da menor para a maior), pela região (em ordem alfabética) e por último pelo nome, tentei fazer sem sucesso O meu código #include <stdio.h> #include <stdlib.h> #include <string.h> struct p { char nome[100]; char rosa[100]; int distancia; }; int distancia(const void *a , const void *b); int rosa(const void *c , const void *d); int pornome(const void *e, const void *f); int main(int argc, char** argv) { int teste, i; while(scanf("%d", &teste) != EOF) { struct p pessoas[teste]; for(i = 0; i < teste; i++) { scanf("%s %s %d", pessoas[i].nome, pessoas[i].rosa, &pessoas[i].distancia); } qsort(pessoas, teste, sizeof(struct p), distancia); qsort(pessoas, teste, sizeof(struct p), rosa); qsort(pessoas, teste, sizeof(struct p), pornome); for(i = 0; i < teste; i++) { printf("%s\n", pessoas[i].nome); } } return 0; } int distancia(const void *a, const void *b) { if((*(struct p*)a).distancia == (*(struct p *)b).distancia) return 0; else if((*(struct p*)a).distancia < (*(struct p *)b).distancia) return -1; else return 1; } int rosa(const void *c, const void *d) { int r = strcmp((*(struct p*)c).rosa, (*(struct p *)d).rosa); if (r == 0) return 0; else if(r < 0) return -1; else return 1; } int pornome(const void *e, const void *f) { int c = strcmp((*(struct p*)e).nome, (*(struct p *)f).nome); if (c == 0) return 0; else if(c < 0) return -1; else return 1; }
-
C Não estou conseguindo limitar os caracteres de uma string
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
O que estava tentando fazer deu certo, obrigado -
C Não estou conseguindo limitar os caracteres de uma string
diogo moura postou um tópico em C/C#/C++
Bom estou fazendo um programa para ver se uma placa é valida ou não, só que ele tem que seguir esse modelo AAA-1234, só que no programa eu digito 12345, ainda considera certo, e e da o final da placa ele vai dizer o dia em questão, as letras só podem ser maiúsculo, e os números de 1 a 9 #include <stdio.h> #include <ctype.h> #include <stdlib.h> int main(int argc, char** argv) { char nome[100]; int teste, i; scanf("%d", &teste); for(i = 0; i < teste; i++) { setbuf(stdin, NULL); scanf("%s9", nome); // tentei limitar desse jeito porém não tive sucesso char l1, l2, l3; l1 = nome[0]; l2 = nome[1]; l3 = nome[2]; if((nome[3] == '-') && (isupper(l1)) && (isupper(l2)) && (isupper(l3))) { if(nome[7] == '1' || nome[7] == '2') { printf("MONDAY\n"); } else if(nome[7] == '3' || nome[7] == '4') { printf("TUESDAY\n"); } else if(nome[7] == '5' || nome[7] == '6') { printf("WEDNESDAY\n"); } else if(nome[7] == '7' || nome[7] == '8') { printf("THURSDAY\n"); } else if(nome[7] == '9' || nome[7] == '0') { printf("FRIDAY\n"); } } else { printf("FAILURE\n"); } } return 0; } -
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Cara eu tõ começando a acreditar que essa questão é impossível do uri aceitar, por que todas as resposta estão certos.@devair1010 Eu utilizo o Falcon C++@devair1010 -
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Sim, depois reutilizar o vetor, o problema agora é que o resultados que a questão está fornecendo eu consigo encontrar, só que o juiz está acusando 10 % de erro, sendo que já testei todos os nomes possiveis, e deram certo@CiroboyBR -
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Bom zerei o contador c, porém os resultados sairão iguais o da questão como a imagem mostra, porém quando fui enviar a questão deu 10 % de erro.@devair1010 @Derleyvolt -
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Eu comentei o código, do que ele vai fazer. /*Bom o objetivo dessa questão e que cada letra tem um determinado numero*/ #include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { int i, j, vetor[100], c = 0, teste, k; /*vetor[100] dando do tamanho vetor, c, contador para incrementar o valor, quando encontar uma letra que tem na frase dado a letra ele vai atriburi o valor para o vetor*/ char nome[100]; char primeiro[7] = {'a', 'k', 'u', 'G', 'Q'}, segundo[7] = {'b', 'l', 'v', 'I', 'S'}; char terceiro[7] = {'E', 'O', 'Y', 'c', 'm', 'w'}, quarto[7] = {'F', 'P', 'Z', 'd', 'n', 'x'}; char quinto[6] = {'J', 'T', 'e', 'o', 'y'}, sexto[7] = {'D', 'N', 'X', 'f', 'p', 'z'}; char setimo[6] = {'A', 'K', 'U', 'g', 'q'}, oitavo[6] = {'C', 'M', 'W', 'h', 'r'}; char nono[6] = {'B', 'L', 'V', 'i', 's'}, deimo[5] = {'H', 'R', 'j', 't'}; //preenchendo o vetor com as letrar scanf("%d", &teste); for(k = 0; k < teste; k++) { setbuf(stdin, NULL); gets(nome); int tam = strlen(nome); for(i = 0; i < tam; i++) { for(j = 0; j < 7; j++) { if(nome[i] == primeiro[j]) /*aqui eu comparo se na frase tem determinada letra, se ela tiver vai ser atribuido um valor numerico para o vetor, c++, para incrementar*/ { vetor[c++] = 0; } } for(j = 0; j < 7; j++) { if(nome[i] == segundo[j]) { vetor[c++] = 1; } } for(j = 0; j < 7; j++) { if(nome[i] == terceiro[j]) { vetor[c++] = 2; } } for(j = 0; j < 7; j++) { if(nome[i] == quarto[j]) { vetor[c++] = 3; } } for(j = 0; j < 6; j++) { if(nome[i] == quinto[j]) { vetor[c++] = 4; } } for(j = 0; j < 7; j++) { if(nome[i] == sexto[j]) { vetor[c++] = 5; } } for(j = 0; j < 6; j++) { if(nome[i] == setimo[j]) { vetor[c++] = 6; } } for(j = 0; j < 6; j++) { if(nome[i] == oitavo[j]) { vetor[c++] = 7; } } for(j = 0; j < 6; j++) { if(nome[i] == nono[j]) { vetor[c++] = 8; } } for(j = 0; j < 5; j++) { if(nome[i] == deimo[j]) { vetor[c++] = 9; } } } for(i = 0; i < 12; i++) { printf("%d", vetor[i]); } printf("\n"); //mostro o vetor memset(vetor, 0, sizeof(vetor)); /*Queria limpar o vetor para que eu pudese realizar os proximos testes*/ /*Só que depois que o zero o valor do vetor ele não recebe mais nenhum valor*/ } return 0; } @Derleyvolt -
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Bom eu consegui zerar o vetor. Olha ai imagem ai, só que o vetor não recebe mais valores, só fica mostrando zeros. adicionado 2 minutos depois Zerei o valor do vetor depois de mostrar na tela, vou colocar a parte do meu código que fiz a alteração for(i = 0; i < 12; i++) { printf("%d", vetor[i]); } printf("\n"); memset(vetor, 0, sizeof(vetor)); Será que utilizei memset(vetor, 0, sizeof(vetor)); no lugar errado? @Derleyvolt -
C Não estou conseguindo zerar os valores do vetor
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Continua o mesmo problema utilizei o que você falou, e continua dando o mesmo erro, o primeiro valor que mostra é o que sempre o que fica @Derleyvolt -
Bom dia, eu consegui desenvolver a logica da questão, o problema é que depois de mostrar os valores, eu tenho que apagar o que há no vetor, para não utilizar o resultado anterior no próximo caso de teste Link da questão #include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { int i, j, vetor[12], c = 0, teste, k; char nome[100]; char primeiro[7] = {'a', 'k', 'u', 'G', 'Q'}, segundo[7] = {'b', 'l', 'v', 'I', 'S'}; char terceiro[7] = {'E', 'O', 'Y', 'c', 'm', 'w'}, quarto[7] = {'F', 'P', 'Z', 'd', 'n', 'x'}; char quinto[6] = {'J', 'T', 'e', 'o', 'y'}, sexto[7] = {'D', 'N', 'X', 'f', 'p', 'z'}; char setimo[6] = {'A', 'K', 'U', 'g', 'q'}, oitavo[6] = {'C', 'M', 'W', 'h', 'r'}; char nono[6] = {'B', 'L', 'V', 'i', 's'}, deimo[5] = {'H', 'R', 'j', 't'}; scanf("%d", &teste); for(k = 0; k < teste; k++) { setbuf(stdin, NULL); gets(nome); int tam = strlen(nome); for(i = 0; i < tam; i++) { for(j = 0; j < 7; j++) { if(nome[i] == primeiro[j]) { vetor[c++] = 0; } } for(j = 0; j < 7; j++) { if(nome[i] == segundo[j]) { vetor[c++] = 1; } } for(j = 0; j < 7; j++) { if(nome[i] == terceiro[j]) { vetor[c++] = 2; } } for(j = 0; j < 7; j++) { if(nome[i] == quarto[j]) { vetor[c++] = 3; } } for(j = 0; j < 6; j++) { if(nome[i] == quinto[j]) { vetor[c++] = 4; } } for(j = 0; j < 7; j++) { if(nome[i] == sexto[j]) { vetor[c++] = 5; } } for(j = 0; j < 6; j++) { if(nome[i] == setimo[j]) { vetor[c++] = 6; } } for(j = 0; j < 6; j++) { if(nome[i] == oitavo[j]) { vetor[c++] = 7; } } for(j = 0; j < 6; j++) { if(nome[i] == nono[j]) { vetor[c++] = 8; } } for(j = 0; j < 5; j++) { if(nome[i] == deimo[j]) { vetor[c++] = 9; } } } for(i = 0; i < 12; i++) { printf("%d", vetor[i]); } printf("\n"); for(i = 0; i < 12; i++) { vetor[i] = 0; }/* quando eu faço isso só o primeiro resultado é o certo, os outros resultados são apenas zeros/* } return 0; }
-
C estou com um problema na impressão da string
diogo moura respondeu ao tópico de Amanda Kellen em C/C#/C++
Não sei se é a resposta que você procura, a minha solução do problema foi essa #include <stdio.h> #include <stdlib.h> #include <string.h> #define TAMANHO 100 void duplica(char texto[], char duplo[]); int main() { char texto[TAMANHO], duplo[TAMANHO]; printf("\n Digite o texto: "); scanf("%[^\n]", texto); duplica(texto, duplo); return 0; } void duplica(char texto[], char duplo[]) { int i, tam, c = 0; tam = strlen(texto); for(i = 0; i < tam; i++) { duplo[c++] = texto[i]; } duplo[c] = '\0'; for(i = 0; i < c; i++) { printf("%c\n%c\n", duplo[i], duplo[i]); } printf("\nTexto apos ser duplicado:\n"); for(i = 0; i < c; i++) { printf("%c%c", duplo[i], duplo[i]); } printf("\n"); } -
C Não estou conseguindo, contar os números repetidos
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Eu sei que isso não se pode fazer, mas como eu saberia o tamanho do vetor que o usuário digitou, scanf("%d",tamanho); int vetor[tamanho]; //o tamanho do vetor passaria a ser o numero que o usario digitou @Derleyvolt adicionado 5 minutos depois Como você está colocando valores no vetor? Poderia me explicar esse parte @devair1010 vet[t]++; if(vet[t] == 2) cont++; -
C Não estou conseguindo, contar os números repetidos
diogo moura respondeu ao tópico de diogo moura em C/C#/C++
Cara eu tentei enviar a seu código só que recebi 100% de erro o que será que aconteceu?@devair1010 -
Em alguns testes meu código consegue passar, porém ele está dando 60 % de erro, Link da questão. Alguns exemplos de entradas e saídas do udebug 30 10 12 18 5 11 30 5 19 19 23 15 Saída = 1 ------------------------ 20 10 6 6 2 8 2 12 16 3 8 17 Saída = 3 ----------------------- 10 10 2 5 3 4 3 3 2 7 9 6 Saída = 2 ---------------------- O meu código falha nesse teste, nos outros ele imprime o resultado esperado. 10 10 4 2 3 4 4 5 2 2 4 9 Saída = 2. ---------------------- Meu código. #include <stdio.h> int main(void) { int a, m, i, j, cont; while(1) { scanf("%d %d", &a, &m); if(a == 0 && m == 0) break; int vetor[m], verifica[m]; for(i = 0; i < m; i++) { verifica[i] = 0; } for(i = 0, cont = 0; i < m; i++) { scanf("%d", &vetor[i]); } for(i = 0; i < m - 1; i++) { for(j = i + 1; j < m; j++) { if(vetor[i] == vetor[j] && verifica[i] != 1 && verifica[j] != 1) { cont++; verifica[i] = 1; verifica[j] = 1; } } } printf("%d\n", cont); } return 0; }
-
@Mauro Britivaldo Obrigado por me ajudar, analisei o seu código e consegui entender como você chegou o resultado, pensei que se transformasse tudo em segundos ficaria resolveria o problema.
-
Estou tentando resolver uma questão na plataforma uri, porém não sei como faço para corrigir o meu código, o juiz está dando 40 % de erro.O link da questão #include <stdio.h> int main(int argc, char** argv) { int hora_1, minuto_1, hora_2, minuto_2, hora_final_1, hora_final_2, soma; scanf("%d %d %d %d", &hora_1, &minuto_1, &hora_2, &minuto_2); hora_final_1 = (hora_1 * 3600) + (minuto_1 * 60); hora_final_2 = (hora_2 * 3600) + (minuto_2 * 60); if(hora_final_2 > hora_final_1) { soma = hora_final_2 - hora_final_1; } else { soma = hora_final_1 - hora_final_2; } if(soma == 0) { printf("O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)\n"); } else { printf("O JOGO DUROU %d HORA(S)", soma / 3600); soma %= 3600; printf("E %d MINUTO(S)\n", soma / 60); } return 0; }
-
Estou iniciando meus estudos em java e não estou conseguindo ler os números com casa decimais e também não estou conseguindo formatar a saida, a questão que estou fazendo é da plataforma uri vou colocar o enunciado dela. Questão 1064. Leia 6 valores. Em seguida, mostre quantos destes valores digitados foram positivos. Na próxima linha, deve-se mostrar a média de todos os valores positivos digitados, com um dígito após o ponto decimal. package primeiroprograma; import java.util.Scanner; public class PrimeiroPrograma { public static void main(String[] args) { Scanner ent = new Scanner(System.in); double num,c=0; int i,contador=0; for(i=0;i<6;i++) { num = ent.nextDouble(); if(num>0) { contador++; c+=num; } } System.out.println(contador+" Valores postivos"); System.out.println(c/contador); } }
-
Estou iniciando meus estudos na linguagem c,porém estou com dificuldades na parte de ponteiros,estou tentando fazer o cálculo de um fatorial, alguém poderia me ajudar com essa questão,,o abaixo o meu código #include<stdio.h> #include<stdlib.h> void calulcafatorial(int num,int *fatorial); int main(void) { int num,*fatorial; scanf("%d",&num); calulcafatorial(num,&fatorial); } void calulcafatorial(int num,int *fatorial) { int fat; for(fat=1;*fatorial>1;*fatorial--) { fat*=*fatorial; } printf("%d\n",fat); }a
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