
p4t0X
Membros-
Total de itens
151 -
Registro em
-
Última visita
Tudo que p4t0X postou
-
Problema BIZARRO: fprintf para de imprimir...
pergunta respondeu ao Felipe Amadio de p4t0X em C, C++
Qual sistema operacional usado? Qual o erro desse código que você postou?! Você tentou debugar o programa pra ver alguma coisa?! -
Qual exatamente o erro?! @edit Ví algumas coisas... 1) A variável str não tem comprimento, você precisa alocar memória pra ela. Solução: str = char[20]; 2) Você tem que ler string, o formato é "%s" ainda sim, vale ressaltar que strings com espaços não serão tratadas da forma esperada. Solução: "%s" no lugar de "%c" para a variável str; 3) O formato "%char" não existe, é "%c", a variável str é um vetor de char, portanto na atribuição da str2, basta fazer uma atribuição simples. Solução: str2 = str[caracterequalquer]; 4) Na hora da comparação (linha 23), você precisa fazer o casttype para a posição do vetor a ser testada, não do vetor inteiro. Solução: aux = (int) str[posicaoasertestada];
-
Posta algum código aí que agente ajuda, não vamos te dar o programa feito... Se você quer simplesmente o programa, é só procurar melhor que tem. Agora, se você quer entender/aprender posta o código/dúvida.
-
Aconselho a colocar chaves sempre que possível, também aconselho fazer uso de uma identação padrão, isso reduz consideravelmente o número de erros... E ó, aconselho você a dar uma olhada em vetores, ficaria 70% mais fácil usa-los. if( condição ) { façaalgumacoisa; façaoutracoisa; for( bla; ble; bli ) { ++variavellegal; } if( nossa ) { vaipralonge; } }
-
Ahhh, perfeito então! Assim fica mais fácil! O conceito da tabela de hash você entendeu, certo?!
-
Você deve ter procurado na net por algum material, mais oh, vê se dá uma clareada: http://pt.wikipedia.org/wiki/Tabela_de_hashing Pra quando você tem que entregar isso?!
-
Qual exatamente o erro?! Só lembrando que para alterar o valor de uma variável dentro de uma função você precisa passar ela por referência!
-
Procure por threads, Ou verifique as teclas pressionadas a cada 1 segundo...
-
Provavelmente o ponteiro está sendo passado como argumento, você precisa passa-lo como referência!
-
Posta alguma coisa ae, e fala a dúvida
-
Humm, e qual exatamente a dúvida?!
-
Multiplicação, de forma recursiva. Ele retorna o A+A, B vezes!
-
A lógica é a mesma, só o que vai mudar é são as condições de parada: Por exemplo: a condição para 'subir' na diagonal /, é linha >= 0 e coluna > colunaMax (decrementa a linha e incrementa a coluna). para 'descer' é: coluna >= 0 e linha < linhaMax (decrementa a coluna e incrementa a linha) Acho que é isso, dá uma tentada ae :)
-
Uma maneira de se fazer: Primeiro você cria todos os números a serem testados. Percorre todos os números restantes, o primeiro sempre será primo, depois disso você tira todos os multiplos desse número. Continue fazendo isso até o fim dos números. Ex: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) Começe do 2 é claro. 2 é primo, agora tire todos os multiplos de 2: ( 3, 5, 7, 9, 11, 13, 15, 17, 19 ); próximo passo (3): 3 é primo, agora tire todos os multiplos de 3: ( 5, 7, 11, 13, 17, 19 ); próximo passo (5): 5 é primo, agora tire toods os multiplos de 5: ( 7, 11 , 13 , 17, 19 ); próximo passo (7): 7 é primo, agora tire toods os multiplos de 7: ( 11 , 13 , 17, 19 ); próximo passo (11): 11 é primo, agora tire toods os multiplos de 11: ( 13 , 17, 19 ); próximo passo (13): 13 é primo, agora tire toods os multiplos de 13: ( 17, 19 ); próximo passo (17): 17 é primo, agora tire toods os multiplos de 17: ( 19 ); próximo passo (19): 17 é primo, agora tire toods os multiplos de 19: (): FIM
-
SelectionSort é um método de ordenação, veja: http://pt.wikipedia.org/wiki/Selection_sort Não seria aritmética de ponteiros?! Acho que até tem como fazer, mais sei lá :o
-
Não sei qual é o erro, mais o fim da string não é '0', é '\0'
-
Sem o uso de vetor é meio chatinho mesmo! rsrs Se você trocar as comparações else if( N2 < menor ){ menor = N2; } e colocar: else if( N2 <= menor ){ segundamenor = menor; menor = N2; Você vai conseguir um semi-resultado. Só vai haver 1 problema, se a menor nota for a primeira, a segunda menor nota vai ser a menor também. Vê se agora você consegue pensar em alguma coisa! ;~)
-
Tarde! Legal isso! Basicamente você vai ter 4 diagonais né!? Dois sentidos para cada diagonal. / -> Uma indo para cima e outra indo para baixo \ -> Uma indo para cima e outra indo para baixo A diagonal do elemento x[j], pertencente a matriz A[m][n], vai ser todo elemento x[i+q][j+q], sendo m > i+q > 0 e n > j+q > 0, considerando q inteiro e i,j naturais. Veja se ajuda: #include <stdlib.h> #include <stdio.h> void percorreDiagonalDireitaParaBaixo( int x, int y, int linha, int coluna, int v[][4] ){ while( x < linha && y < coluna ){ printf( "%d\t" , v[x++][y++] ); } } int main( int argc, char **argv ){ int v[][4] = { { 1 , 2 , 3 , 10 }, { 4 , 5 , 6 , 11 }, { 7 , 8 , 9 , 12 } }; percorreDiagonalDireitaParaBaixo( 0, 1, 3, 4, v ); }
-
Tá dando errado por causa disso, coloque assim: while ( NUM1 != 0 || NUM2 != 0 ){ Mais eu acho que tem alguma coisa errada com a lógica, se num1 ou num2 for 0, a soma vai ser o outro número O_o, e se num1 ou num2 não for 0, o programa vai ficar exibindo a soma para sempre...
-
Oh, esse menu seu não está explicando o que ele realmente faz, o certo seria: printf("[1] -> Media aritmetica\n"); printf("[2] -> Media aritmetica sem a maior e menor nota\n"); Para calcular sem as 2 menores notas você precisa descobrir as 2 menores, atualmente você só sabe a menor. A lógica para descobrir a segunda menor é parecida... A saída do programa está correta. No primeiro caso ele faz a média aritmética das notas, isso é, soma todas e divide pelo número de notas. 7+6+5+4+3+2 = 27 Como temos 6 notas, a média será: 27/6 = 4.5 No segundo caso ele faz a média aritmética das notas, excluindo a maior e a menor. 6+5+4+3 = 18 Como temos 4 notas, a média será: 18/4 = 4.5 Para você fazer a média das 4 maiores notas, você precisa descobrir as duas menores notas, criar mais uma opção para a escolha desse tipo de media e na hora que for calcular a média, calcular da seguinte maneira: media = ( media - menor - menor2 )/4;
-
Por exemplo, você verifica se ele quer ver a média com ou sem a subtração das maiores/menores, e na hora de calcular você calcula. Por exemplo, antes de ler as médias. printf( "Informe o tipo de media a ser calculada;\n[1] -> Media aritmetica\n[2] -> Media aritmetica sem a maior e menor" ); scanf( "%d" , &opcao );//Declarar essa variável lá encima Daí na hora de calcular a média você faz: if( opcao == 1 ){ media = media/6;//Aqui inclui TODAS as notas }else if( opcao == 2 ){ media = ( media - maior - menor )/4;//Aqui tira a maior e a menor } E assim por diante! :) Nesse segundo programa, você lê todos os números para a variavel Num[X], porem você não altera o X, então você fica substituindo a variavel Num[X], que no seu caso é Num[0], já que o X foi iniciado com 0. Duas soluções: Ou você coloca todos os indices na hora da leitura das variáveis; printf("Digite o PRIMEIRO numero:\n"); scanf("%d",&Num[X]);//&Num[0] printf("Digite o SEGUNDO numero:\n"); scanf("%d",&Num[X]);//&Num[1] .... Ou você faz a leitura das variáveis em um laço de repetição while( X < 10 ){ printf( "Digite o %d numero: " , X ); scanf( "%d" , &Num[X] ); X++ } //Lembre-se de antes de começar outro laço de repetição, alterar o valor de X para 0 novamente
-
printf("\nD&igite o valor da SEXTA nota:\n"); scanf("%f",N6); Não olhei tudo, batendo o olho eu ví isso: Troque N6 por &N6
-
Vish, não sei se foi erro na hora de digitar aki, mais oh: //Na main struct CPUTIMER_VARS //Na declaração struct CPUTIMER_REGS Fiz um exemplo simples aqui, não tive maiores problemas: #include <stdio.h> union teste { int asd; float qqq; }; struct s { union teste t; int qwert; }; int main( int argc, char **argv ){ struct s a; int b; a.t.asd = 213; b = a.t.asd; printf( "%d" , b ); } Uso ubuntu e estou compilando com gcc