Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

diogo moura

Membros Plenos
  • Total de itens

    36
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Não sou muito bom com ponteiro, porém meu professor mostrou um código e até agora não entendi por que a função retornou um vetor com os valores alterados #include <stdio.h> #include <stdlib.h> int *funcao(int vetor[]); int main(int argc, char** argv) { int vetor[10], *ptr; for(int i = 0; i < 10; i++) { scanf("%d", &vetor[i]); } ptr = funcao(vetor); for(int i = 0; i < 10; i++) { printf("%3d",ptr[i]); } printf("\n"); return 0; } int *funcao(int vetor[]) { int *n; n = (int*)malloc(sizeof(int) * 10); for(int i = 0; i < 10; i++) { n[i] = vetor[i] * 2; } return n; }
  2. Seria assim ? @Boko Moko #include <stdio.h> #include <string.h> struct pessoas { char nome[100]; int nota; }; int main(int argc, char** argv) { struct pessoas pessoa[100]; int teste, aux; char a[100]; scanf("%d", &teste); for(int i = 0; i < teste; i++) { scanf("%s %d", pessoa[i].nome, &pessoa[i].nota); } for(int i = 0; i < teste; i++) { for(int j = i + 1; j < teste; j++) { if(pessoa[i].nota == pessoa[j].nota) { if(strcmp(pessoa[i].nome, pessoa[j].nome) == 1) { strcpy(a, pessoa[i].nome); strcpy(pessoa[i].nome, pessoa[j].nome); strcpy(pessoa[i].nome, a); } } else if(pessoa[i].nota > pessoa[j].nota) { aux = pessoa[i].nota; pessoa[i].nota = pessoa[j].nota; pessoa[j].nota = aux; } } } for(int i = 0; i < teste; i++) { printf("%s %d\n", pessoa[i].nome, pessoa[i].nota); } return 0; } , acho que não deu certo
  3. A questão pede que leia nome(sem espaço) e numero(inteiro) e se ordenado pelo numero e caso o número fosse igual seria ordenado por ordem alfabética, tentei fazer mas não consegui O meu código #include <stdio.h> #include <string.h> struct pessoas { char nome[100]; int nota; }; int main(int argc, char** argv) { struct pessoas pessoa[100]; int teste, aux; char a[100]; scanf("%d", &teste); for(int i = 0; i < teste; i++) { scanf("%s %d", pessoa[i].nome, &pessoa[i].nota); } for(int i = 0; i < teste; i++) { for(int j = i + 1; j < teste; j++) { if(pessoa[i].nota == pessoa[j].nota) { strcpy(a, pessoa[i].nome); strcpy(pessoa[i].nome, pessoa[j].nome); strcpy(pessoa[i].nome, a); } else if(pessoa[i].nota > pessoa[i].nota) { aux = pessoa[i].nota; pessoa[i].nota = pessoa[j].nota; pessoa[j].nota = aux; } } } for(int i = 0; i < teste; i++) { printf("%s %d\n",pessoa[i].nome,pessoa[i].nota); } return 0; }
  4. Estou fazendo uma questão que pede para eu retirar apenas os números da frase, o meu código só consegue pegar os números com frases pequenas, Exemplo de frase que o meu código falha, esse caso de teste por ser muito grande o código não vai conseguir retirar o número 100, teria uma função para isso ? #include <stdio.h> #include <string.h> #include <ctype.h> int main(int argc, char** argv) { char nome[] = {"esse vai passar 900"}, aux[101]; int cont = 0, tam = strlen(nome); int indice = 0; for(int i = 0; i < tam; i++) { if(isdigit(nome[i])) { indice = i; break; } } for(int i = indice; i < tam; i++) { aux[cont] = nome[i]; cont++; } aux[cont] = '\0'; puts(aux); return 0; }
  5. Bom estou fazendo a Questão 2729 do uri, que pede para ordenar em ordem alfabética e eliminar os nomes repetidos , já tentei varias entradas e o resultado sai o resultado certo que a questão pede, alguém poderia colocar algum caso que meu código não passe #include <stdio.h> #include <string.h> #include <stdlib.h> int ordena(const void *a, const void *b); int main(int argc, char** argv) { char vetor_nomes[1700][100], nome[1000000], *ponteiro, auxiliar[1700][100]; int teste, cont1, cont2; scanf("%d", &teste); while(teste--) { getchar(); scanf("%[^\n]", nome); cont1 = 0, cont2 = 0; ponteiro = strtok(nome, " "); while(ponteiro != NULL) { strcpy(vetor_nomes[cont1], ponteiro); cont1++; ponteiro = strtok(NULL, " "); } qsort((void*)vetor_nomes, cont1, sizeof(vetor_nomes[0]), ordena); for(int i = 0; i < cont1; i++) { if(!strcmp(vetor_nomes[i], vetor_nomes[i + 1]) == 0) { strcpy(auxiliar[cont2], vetor_nomes[i]); cont2++; } } printf("%s", auxiliar[0]); for(int i = 1; i < cont2; i++) { printf(" %s", auxiliar[i]); } printf("\n"); } return 0; } int ordena(const void *a, const void *b) { return (strcmp((char *)a, (char *)b)); }
  6. Olha @AnsiC , fiz o que você pediu porém ainda estou levando 60% de erro
  7. @foxjin23 Em c ficaria desse jeito #include <stdio.h> #include <math.h> int somatorio(int num); int main(int argc, char** argv) { int n; scanf("%d", &n); printf("%d\n",somatorio(n)); return 0; } int somatorio(int num) { int soma = 0; for(int i = 0; i < num; i++) { soma += ((pow(i, 2)) / (i + 3)); } return soma; }
  8. Bom estou fazendo a questão 1199 Conversão de bases do uri porém em alguns casos o meu teste passou, só que quando eu coloquei um número que o pessoal colocou no fórum deu erro, o número foi 0x80000000 o resultado esperado é 2147483648, só que meu código imprime -2147483648, já tentei multiplicar por -1 e o resultado continua negativo, alguém poderia me ajudar #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <string.h> char saber_o_tipo(char *numero); int main(int argc, char** argv) { char *numero; numero = (char*)malloc(sizeof(char) * 1000000); int resposta, valor; while(1) { scanf("%s", numero); if(numero[0] == '-') { break; } resposta = saber_o_tipo(numero); if(resposta > 0) { sscanf(numero, "%x", &valor); if(valor < 0) { printf("%d\n", valor*-1); } else { printf("%d\n", valor); } } else { sscanf(numero, "%d", &valor); printf("Ox%X\n", valor); } } free(numero); return 0; } char saber_o_tipo(char *numero) { int i, contador = 0, tamanho; tamanho = strlen(numero); for(i = 0; i < tamanho; i++) { if(isalpha(numero[i])) { contador++; } } if(contador > 0) { return 1; } else { return 0; } }
  9. obrigado @devair1010 essa passou despercebido
  10. Testei as entradas que a questão deu, os resultados batem, porém o uri só me retorna 100% de erro alguém poderia me ajudar, Link da questão #include <stdio.h> #include <string.h> #include <ctype.h> int main(int argc, char** argv) { char nome[1000000], aux[1000000]; int c = 0, teste; scanf("%d", &teste); for(int j = 0; j < teste; j++) { getchar(); scanf("%[^\n]", nome); for(int i = 0; i < strlen(nome); i++) { if((isupper(nome[i])) || (islower(nome[i]))) { nome[i] += 3; } else { nome[i] = nome[i]; } } for(int i = strlen(nome) - 1; i >= 0 ; i--) { aux[c++] = nome[i]; } aux[c] = '\0'; int tam = strlen(nome); tam /= 2; for(int i = tam; i < strlen(nome); i++) { aux[i] -= 1; } puts(aux); c = 0; memset(aux, 0, sizeof(aux)); } return 0; }
  11. Bom estou fazendo uma questão que se precisa retirar os zeros de uma palavra, eu consegui até ai o problema é que se palavra for 100 ele vai printar só 1 por que eu retirei os zeros, que vai estar errado, vou colocar o link da questão pra vocês entenderem melhor. Tela do link: Link da questão: URI 2714. Código atual: #include <stdio.h> #include <string.h> #include <ctype.h> int main(int argc, char** argv) { char senha[80]; int teste; scanf("%d", &teste); for(int i = 0; i < teste; i++) { scanf("%s", senha); if(strlen(senha) == 20) { if(isupper(senha[0]) && isupper(senha[1])) { for(int j = 0; j < strlen(senha); j++) { if(senha[j] != '0' && senha[j] != 'R' && senha[j] != 'A') { printf("%c", senha[j]); } } printf("\n"); } else { printf("INVALID DATA\n"); } } else { printf("INVALID DATA\n"); } } return 0; }
  12. @devair1010 olá é 2693, desculpa demora estava com internet muito ruim
  13. @Mauro Britivaldo olá eu vi que se subtrair -48, transformaria em inteiro, o sprintf, deu certo

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×