Flávio Pedroza
Membro Pleno-
Posts
2.074 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Flávio Pedroza postou
-
Se "provMnot=j;" então ele vai de 0 a 2, e não de 1 a 3, não é mesmo? for(j=0;j<col;j++){ if(provNot[i][j]<menor[i]){ menor[i]=provNot[i][j]; provMnot=j; // j vai de 0 a no máixmo 2 } } if(provMnot==0){ p1=p1+1; } if(provMnot==1){ p2=p2+1; } if (provMnot==2){ p3=p3+1; } Veja se assim funciona
-
C Programa que imprima todos os números pares de 0 até N.
Flávio Pedroza respondeu ao tópico de IsaTheKid em C/C#/C++
Tire o ";" depois do "for (...". O incremento (passo) também estava errado, o certo é "n=+2". Não precisa disso "if(i %2 == 0)", pois o i não necessariamente deve ser par. A condição de parada e "n<=i", ou seja, executa o for enquanto n for menor ou igual a i. A variável "n" pode ser local. int par(int i) { int n; for(n=0; n <= i; n=+2) printf("Numeros pares: %d", n); } -
C Escrever programa em C para “automatizar” o jogo
Flávio Pedroza respondeu ao tópico de DarkSkull10 em C/C#/C++
Para mostrar as posições da letra: char letra; do { scanf("%c",&letra); } while ((letra != 'G') && (letra != 'R') && (letra != 'B')); for (int i = 0; i < 9; i++) if (Sequencia[i]==letra) printf("%d ",i+1); -
C Alocação dinâmica para não desperdiçar memória
Flávio Pedroza respondeu ao tópico de MartiniM em C/C#/C++
O que você procura é o realloc, mas recomendo ao invés de incrementar o tamanho de um em um, faça em etapas, de dez em dez. E no final você usa realloc mais uma vez para reduzir o tamanho para a quantidade exata que o usuário digitou. Edit: não esqueça de chamar free no final. -
C# UPDATE - Alterar registro no banco de dados
Flávio Pedroza respondeu ao tópico de Ana Clara Kettl em C/C#/C++
Pede pra mostrar também a variável sqlUpdate no catch, pois pode ter algum erro na sintaxe do comando. -
O único erro que percebo é que você lê apenas 4 vezes as entradas, enquanto o problema diz " a entrada só termina quando não houveram mais números". Outra coisa é que tem que limitar o valor, "Todos os inteiros serão menores que 1.000.000 e maiores que 0.". Disto isto: while (1) { scanf("%d %d", &i, &j); if ((i < 1) || (j < 1) || (i > 1000000) || (j > 1000000)) break; if(i >= j){ maior = i; menor = j; } else { maior = j; menor = i; } ... Pode ser também o fato de que, enquanto no seu código a saída é fornecida a medida que o usuário entra com os dados, o problema exigir que forneça as primeiro todas entradas e somente depois calcule e imprima os resultados, mas não acho eu ficou claro se tem que ser assim mesmo.
-
C Falha de Segmentação utilizando ponteiro de struct
Flávio Pedroza respondeu ao tópico de MalThas em C/C#/C++
Entendi agora, sua função CHEIO estava em um loop infinito. Testa assim agora: int Cheio(Principal *Estrutura, int i){ int temp = 0; for (int j=0; j< Estrutura[i].Prox -> Sizes; j++){ if(Estrutura[i].Prox -> N[j] != 0){ temp++; } } if(temp == Estrutura[i].Prox -> Sizes){ return 1; }else{ return 0; } } -
C Falha de Segmentação utilizando ponteiro de struct
Flávio Pedroza respondeu ao tópico de MalThas em C/C#/C++
Sim, isso mesmo. Testei neste compilador online https://www.onlinegdb.com/online_c++_compiler, com as alterações que propus, e acredito que funcionou: -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar 1 Digite a posicao na qual deseja inserir o elemento: 0 Nao existe uma estrutura auxiliar. Insira o tamanho dela: 3 Digite o elemento a ser inserido: 1 Digite o elemento a ser inserido: 2 Digite o elemento a ser inserido: 3 -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar 6 Insira a posicao que deseja aumentar: 0 TAMANHO 3 Insira o novo numero de posições a ser adicionado na estrutura auxiliar: 2 TAMANHO 5 -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar 1 Digite a posicao na qual deseja inserir o elemento: 1 Nao existe uma estrutura auxiliar. Insira o tamanho dela: 2 Digite o elemento a ser inserido: 4 Digite o elemento a ser inserido: 5 -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar 2 -------------------------- Posicao 0 da estrutura Principal Elementos: 1, 2, 3, 0, 0, -------------------------- Posicao 1 da estrutura Principal Elementos: 4, 5, -------------------------- Posicao 2 da estrutura Principal Elementos: -------------------------- Posicao 3 da estrutura Principal Elementos: -------------------------- Posicao 4 da estrutura Principal Elementos: -------------------------- Posicao 5 da estrutura Principal Elementos: -------------------------- Posicao 6 da estrutura Principal Elementos: -------------------------- Posicao 7 da estrutura Principal Elementos: -------------------------- Posicao 8 da estrutura Principal Elementos: -------------------------- Posicao 9 da estrutura Principal Elementos: -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar 6 Insira a posicao que deseja aumentar: 1 TAMANHO 2 Insira o novo numero de posições a ser adicionado na estrutura auxiliar: 5 TAMANHO 7 -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar 2 -------------------------- Posicao 0 da estrutura Principal Elementos: 1, 2, 3, 0, 0, -------------------------- Posicao 1 da estrutura Principal Elementos: 4, 5, 0, 0, 0, 0, 135041, -------------------------- Posicao 2 da estrutura Principal Elementos: -------------------------- Posicao 3 da estrutura Principal Elementos: -------------------------- Posicao 4 da estrutura Principal Elementos: -------------------------- Posicao 5 da estrutura Principal Elementos: -------------------------- Posicao 6 da estrutura Principal Elementos: -------------------------- Posicao 7 da estrutura Principal Elementos: -------------------------- Posicao 8 da estrutura Principal Elementos: -------------------------- Posicao 9 da estrutura Principal Elementos: -------------------------- Digite a opção desejada 0 - Sair 1 - Inserir Elemento 2 - Listar 3 - Listar Ordenadamente cada estrutura auxiliar 4 - Listar Ordenadamente todos os numeros 5 - Excluir um elemento 6 - Aumentar tamanho da Estrutura Auxiliar -
C++ Indicação de livros sobre a linguagem c e c++.
Flávio Pedroza respondeu ao tópico de Alberto_Santos em C/C#/C++
Procura pelos autores Bjarne Stroustrup (The C++ Programming Language) e Dennis Ritchie (The C Programming Language). Não conheço pessoalmente, mas falam muito bem pois os autores são também os que desenvolveram as linguagens. Não sei se tem em português. -
Tenta assim então: void insere(int *vetor){ if (topo > 4){ printf("Pilha cheia/n"); }else{ printf("Digite o valor que quer incluir: "); scanf("%d", &pilha[topo]); topo++; } }
-
C Falha de Segmentação utilizando ponteiro de struct
Flávio Pedroza respondeu ao tópico de MalThas em C/C#/C++
Na função "Aumentar" insira um "return" na posição indicada abaixo. Também a função não tem necessidade de se usar um "while" para aumentar a estrutura, basta realocar a memória uma única vez. Acredito que agora irá funcionar: void Aumentar(Principal *Estrutura){ int NewSize = 0; int i = 0; int temp = 1; printf("\nInsira a posicao que deseja aumentar: "); scanf("%d", &i); if(Inexistente(Estrutura, i) == 1){ printf("\nEstrutura Auxiliar Inexistente!\n"); return; //insira essa linha, pois se a estrutura não existe não tem sentido em continuar o restdo do código } printf("TAMANHO %d\n",Estrutura[i].Prox -> Sizes ); printf("\nInsira o novo numero de posições a ser adicionado na estrutura auxiliar: "); scanf("%d", &NewSize); Estrutura[i].Prox -> Sizes+= NewSize; Estrutura[i].Prox -> N = (int *)realloc(Estrutura[i].Prox -> N, Estrutura[i].Prox -> Sizes * sizeof(int)); printf("TAMANHO %d\n",Estrutura[i].Prox -> Sizes ); } Por fim, você tem que liberar a memória alocada no final, pois o "c" não faz isso automaticamente. você faz isso com "free". -
Não confunda goto com gotoxy. adicionado 22 minutos depois Veja se assim funciona: int main() { Menu(); int a, d = 0; do { a = getch(); // Inicio do Cursor if (a == direita) {//Move o cursor para a esquerda d++; if (d > 3) { d = 0; } if (d == 0) { gotoxy(40, 9); } if (d == 1) { gotoxy(50, 9); } if (d == 2) { gotoxy(58, 9); } if (d == 3) { gotoxy(67, 9); } } if (a == esquerda) { // Move o cursor para a esquerda d--; if (d < 0) d = 3; if (d == 1) { gotoxy(50, 9); } if (d == 2) { gotoxy(58, 9); } if (d == 3) { gotoxy(67, 9); } if (d == 0) { gotoxy(67, 9); } } } while (a != 27); return 0; } P.S. se possível, user switch//case aos invés desses vários "if"
-
C++ Indicação de livros sobre a linguagem c e c++.
Flávio Pedroza respondeu ao tópico de Alberto_Santos em C/C#/C++
Procura pelo autor Harvey Deitel -
Delphi Problema com reprodução de som no programa Lazarus
Flávio Pedroza respondeu ao tópico de winzero em Programação - outros
Acho que esse condicional está errado, já que são strings. label1.caption > Edit1.Text Label1 tem a hora atual, correto? E Edit1, você entra com o quê? Uma hora também? Se for comparar os valores, tem que converte de string para algum formato que seja possível comparar, como um inteiro. -
Pelo que entendi, se você já preestabelece uma matriz fixa no programa, o resultado sempre será o mesmo.
-
C Insertion Sort(ordenação) erro na função ?
Flávio Pedroza respondeu ao tópico de NivaldoReis em C/C#/C++
Seu programa estava fazendo as coisas na ordem errada. Por exemplo, você invocou o "malloc" antes do usuário entrar com o "n". Outra coisa é que primeiro deve ser fornecidos os valores do array e somente depois ordená-lo. Também havia alguns erros de sintaxe. Acredito que assim vai funcionar: #include <stdio.h> #include <stdlib.h> void insertion_sort(int *A, int n) { int i,j,chave; for(i=1; i<n; i++) { chave=A[i]; j=i-1; while(j>=0 && A[j]>chave) { A[j+1]=A[j]; j= j-1; } A[j+1]= chave; } } int main() { int i,n; int *A; printf("Digite quantas posições:\n"); scanf("%d",&n); A = (int *)malloc(n *sizeof(int)); printf("Digite os numeros:\n"); for(i=0; i<n; i++) scanf("%d",&A[i]); insertion_sort(A,n); for(i=0; i<n; i++) { printf("{%d}",A[i]); } return 0; } -
void insere(int *vetor){ if (topo == 5){ printf("Pilha cheia/n"); }else{ printf("Digite o valor que quer incluir: "); scanf("%d", &pilha[topo]); topo++; } } void imprimir(int *vetor){ int i; if (topo == 0){ printf("Pilha vazia, não há o que imprimir\n"); }else{ for(i = 0; i < topo; i ++){ printf("Pilha[%d]: %d\n", i, pilha[i]); } } } Acredito que assim irá funcionar
-
C Falha de Segmentação utilizando ponteiro de struct
Flávio Pedroza respondeu ao tópico de MalThas em C/C#/C++
Isso é um pouco mais complicado, pois o tamanho do array N vai variar. Eu sugiro a seguinte solução: armazenar o tamanho que o usuário entra. Altere a estrutura Aux para acrescentar a variável tamanho: typedef struct Aux{ int *N; unsigned int tamanho; }Aux if(Inexistente(Estrutura, i) == 1){ printf("Nao existe uma estrutura auxiliar. Insira o tamanho dela: "); scanf("%d", &Tamanho); Estrutura[i].Prox = (Aux *)malloc(sizeof(Aux)); Estrutura[i].Prox->tamanho = Tamanho;// insira essa linha para salvar o tamanho Estrutura[i].Prox -> N = (int *)malloc(Tamanho * sizeof(int)); } Para imprimir: void Imprimir(Principal *Estrutura){ int i = 0; int j = 0; while(i<TAM){ printf("\n--------------------------\n"); printf("Posicao %d da estrutura Principal\n", i); printf("Elementos: "); if (Estrutura[i].Prox != NULL){ for (j = 0; j < Estrutura[i].Prox->tamanho; j++) { printf("%d, ", Estrutura[i].Prox -> N[j]); } } i++; } } Veja se funcionar (pode ter algum erro de sintaxe, pois não pude testar); -
C# Desconto sobre tamanho de roupas.
Flávio Pedroza respondeu ao tópico de Dalbert Popenda Mallmann em C/C#/C++
Alterei seu código para permitir a entrada de mais de um letra (ex.: GG). você dev trabalha com strings e usar a função strcmp para comparar os valores. Ela retornar zero se os strings são iguais. #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> using namespace std; int main(int argc, char *argv[]) { char tamanho[3]; float preco; float P; float M; float G; printf("insira o preço da sua camiseta. E aperte ENTER. \n""Depois insira o tamanho da camiseta. P, M ou G. \n"); scanf("%f\n", &preco); scanf("%s", &tamanho); P = preco - (preco * 0.3); M = preco - (preco * 0.2); G = preco - (preco * 0.1); if (!strcmp(tamanho, "P") || !strcmp(tamanho, "p")) { printf("O preço da camiseta será de: %f\n", +P); } else if (!strcmp(tamanho, "M") || !strcmp(tamanho,"m")) { printf("O preço da camiseta será de: %f\n", +M); } else if (!strcmp(tamanho,"G") || !strcmp(tamanho, "g")) { printf("O preço da camiseta será de: %f\n", +G); } else { printf("Não temos descono para esse tamanho.\n O preço da camiseta será de: %f", +preco); } system("pause"); return 0; } você pode adicionar um desconto para GG agora também: float GG; GG = preco - (preco * 0.05); else if (!strcmp(tamanho, "GG") || !strcmp(tamanho,"gg")) { printf("O preço da camiseta será de: %f\n", +GG); } -
C# Desconto sobre tamanho de roupas.
Flávio Pedroza respondeu ao tópico de Dalbert Popenda Mallmann em C/C#/C++
Sendo "tamanho" uma variável do tipo char, você só pode digitar uma letra mesmo. Se digitar mais de uma, vai dar erro mesmo, pois a próxima letra vai ser interpretada como entrada para o scanf seguinte. Tente postar seu código todo como está atualmente. -
C# Desconto sobre tamanho de roupas.
Flávio Pedroza respondeu ao tópico de Dalbert Popenda Mallmann em C/C#/C++
Tentar entrar com os valores separados por espaço, tipo preço tamanho. Exemplo: 25 p Edit: Colocar um "\n" ao ler o preço: scanf("%f\n", &preco); -
C# Desconto sobre tamanho de roupas.
Flávio Pedroza respondeu ao tópico de Dalbert Popenda Mallmann em C/C#/C++
A sintaxe do comando printf está incorreta: printf ("O preço da camiseta será de %f\n", P); Outra coisa, as variáveis do tipo char devem vir entre '': if (tamanho == 'P' || tamanho == 'p') ... -
você não está inicializando as variáveis. Por exemplo, nesta parte do código: if(med>x){ min=x; printf("maior que : %i \n", x); help=max+min; x=help/2; z=z+1; } Quando você procura um número maior que a média, max não tem valor definido no começo ainda, pode ser um número aleatório qualquer (-12039123 por exemplo). Tem que inicializar as variáveis (aquelas que você declarou no main não servem pois estão fora do escopo da função): int BuscaBinaria( int *vet, int x, int control, int num, int help){ int i,y,z,max,min,med; max = num; //incluir essa linha min = 1; //incluir essa linha Também tem alguns erros de sintaxe vet = (int *)malloc(num*sizeof(int*)); for(i=0; i<num; i++){ vet[i]=i+1; } Veja se agora funciona.
-
C Falha de Segmentação utilizando ponteiro de struct
Flávio Pedroza respondeu ao tópico de MalThas em C/C#/C++
Faltou você inicializar o Prox if(Inexistente(Estrutura, i) == 1){ printf("Nao existe uma estrutura auxiliar. Insira o tamanho dela: "); scanf("%d", &Tamanho); Estrutura[i].Prox = (Aux *)malloc(sizeof(Aux)); //insira essa linha Estrutura[i].Prox -> N = (int *)malloc(Tamanho * sizeof(int)); //Erro está aqui! } -
A syntaxe correta é: printf("A temperatura em Fahrenheit é: %f F", f)
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