
princknoby
Membros-
Total de itens
32 -
Registro em
-
Última visita
Tudo que princknoby postou
-
@Willian Marioti Por nada!
-
Olá, tudo bem? Esse programa é pra receber 5 valores, armazenar em um vetor, e mostra qual foi o maior, e o menor, e suas respectivas posições no vetor. Porém, o código está retornando a posição do menor vetor errado! Está retornando o menor e o maior correto, e a posição do maior correto também, mas a posição do menor está errado. Já cansei de procurar erros, não achei nada! Inclusive copiei a parte de imprimir o valor e a posição do menor em outro documento e compilei, e rodou certinho, deu o resultado correto! Mas quando coloco no código do programa todo, o resultado fica errado. Alguém podeira dar uma olhada pra mim? E achar algo que eu não consegui encontrar? Código: #include <stdio.h> #include <stdlib.h> int main () { int i, maior, menor, v[5], po_menor, po_maior; { for (i=0; i<5; i++) { printf ("Digite o valor da posicao %d do vetor:", i); scanf ("%d", &v); } } maior=v[0]; { for (i=0; i<5; i++) { if (maior < v) { maior=v; po_maior=i; //precisamos usar uma variável para armazenar a posição do vetor } } } menor=v[0]; { for (i=0; i<5; i++) { if (menor > v) { menor=v; po_menor=i; //precisamos usar uma variável para armazenar a posição do vetor } } } printf ("O menor numero foi %d e esta na posicao %d\n\n", menor, po_menor); { printf ("\nO maior numero digitado foi %d e esta na posicao %d do vetor!\n", maior, po_maior); } system ("pause"); return 0; } Obrigado!
-
@britivaldo Eu agradeço!
-
@britivaldo Olá, obrigado pela sugestão, mas infelizmente não funcionou. Hoje meu professor iniciou vetor, então tive a ideia de tentar realizar a operação utilizando vetores, consegui fazer. Mas, após fazer o código, a solução ficou MUITO clara em minha mente, e percebi que não precisava usar vetores, então realizei a operação de subtração com um novo código bem mais simples. Vou deixa os dois códigos aqui. O código sem usar vetor, eu comentei ele praticamente inteiro! Para caso alguém algum dia se encontre na mesma situação que eu, venha a ter uma explicação de uma maneira de como resolver esse "problema" para alguns. Código com vetor: #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { int *x, i, sub=0, n; printf ("Digite N:"); scanf ("%d", &n); x = (int *)malloc(n * sizeof(int)); printf ("Digite um numero:"); scanf ("%d", &x[0]); for (i=1; i < n; i++) { printf ("Digite um numero:"); scanf ("%d", &x[i]); sub=x[0] - x[i]; x[0]=sub; } printf ("\nO resultado da sub é:%d\n", sub); system ("pause"); return 0; } Código sem simples (sem usar vetores) - COMENTADO #include <stdio.h> #include <stdlib.h> int main () { int i, x, y, sub, n; /*i é o contador, x é o valor que o usuario ira digitar e y também, vai ficar mais fácil de entender mais a frente, sub é a operação de subtração, e n é quantos numeros a pessoa irá traabalhar */ printf ("Digite com quantos numeros voce deseja trabalhar:"); // que é o nosso n scanf ("%d", &n); //armazenamos em n if (( n != 0) && (n > 1)) // se N for diferente de zero iremos executar o seguinte bloco de comandos // e maior que 1, pois caso por 1, o resultado sera o proprio valor digitado para a operação { { printf ("Digite o 1 numero:"); /* pedimos que o usuario digite o primeiro nro antes do laço para atribuirmos um valor inicial a operação de subtraçaõ */ scanf ("%d", &x); // armazenamos esse primeiro numero em x } for (i=1; i < n; i++) // o contador inica em 1 e vai até n-1 e incrementa 1, e encerra quando o contador for >= (maior ou igual) a n { printf ("Digite o %d valor: ", i+1); /*colamos i + 1 pois queremos o segundo valor, o primeiro já foi digitado então queremos o segundo, porém i=1, então para imprimirmos "2" colocamos i+1 */ scanf ("%d", &y); /*armazenamos os valores digitados no laço, em outra variavel, no caso, e y */ sub=x-y; /* aqui está o ponto crucial, sub=x(valor digitado fora do laço) + y(valor digitado dentro do laço) ou seja, temos um valor inicial para a subtração. Ex: x=2 e y=3; sub=x+y -> sub=2 - 3 -> sub = -1 */ x=sub; /*outro ponto importante do programa, devemos atribuir x=sub, ou seja, x vai atribuir o resultado da operação que demos de exemplo, ou seja, x vai atribuir o valor (-1), então na próxima operação teremos: colocando y=2 -> sub=-1 (novo valor de x) - 2(valor de y) sub=-3; então x vai atribuir -3 caso o laço se repita */ } { printf ("O resultado da subtracao é: %d\n\n", sub); /* esse comando dispensa explicações né? rsrs */ /* apenas uma resalva, demos usar o printf fora do for caso contrário, ele irá imprimir o valor da substração todas as vezes que o laço se repetir, e não é isso que queremos, queremos apenas o resultado final na subtração dos N's números */ } } else if ( n == 1) { printf ("Digite o valor que deseja subtrair: "); scanf ("%d", &x); printf ("O resultado da subtracao é: %d pois temos %d - 0 que é ele mesmo\n\n", x, x); // o proprio valor digitado pelo usuario } else { printf ("Você escolheu realizar a opreracao com 0 numeros!\n\n\n");/* se o usuario atribuir n=0 significa que que ele não realizara nenhuma operação então encerramos o programa */ exit (0); } system ("pause"); return 0; }
-
Fiz o código pra você , de uma olhada: Obs: fiz no celular, então não sei se no Pc vai compilar sem erro. Code: #include <stdio.h> #include <stdlib.h> int main () { int i, par=0, impar=0, nro, x; printf ("digite quantos nuneros voce dedejar checar: "); scanf ("%d", &nro); for (i=1; i<=nro; i++) { printf ("Digite o %d numero: ", i); scanf ("%d", &x); if (x%2==0) { par=par+1; } else { impar=impar+1; } } printf ("Foram digitados %d numeros pares e %d numeros impares\n", par, impar); return 0; system ("pause"); }
-
Cara, Não entendi muito bem o que era pra fazer, mas fiz um código aqui pra você, compila ele, e tenta estudar ele. Alguns erros no seu código: No for, por que você encerrou o contador em 3? Você precisa de 11 dados, seu contador deve ir de 1 a 11 ou de 0 a 10 Else não se coloca condição, o else é a negação da condição do if, se o if for falso, automaticamente o programa vai entrar no else, se quiser usar vários if's faz desse jeito: if ( condição) { } else if (condição) { } e assim por diante até chegar no último que será só o else: else { } o seu printf não irá imprimir nenhum valor, você precisa declarar o tipo de valor que ele deve imprimir, por exemplo %d, %f, etc seu printf correto deveria ser: printf ("Alturas: %f ", cont_altura); só assim ele irá imprimir algum valor. dá uma olhada no código que fiz pra você : #include <stdio.h> #include <stdlib.h> int main () { float altura, idade, i, qi=0, qa=0, media, ia=0; for (i=1; i<=11; i++) { printf ("Digite a altura do %.0f jogador:", i); scanf("%f", &altura); printf ("Digite a idade do %.0f jogador:", i); scanf ("%f", &idade); if (altura > 180) { qa=qa+1; } else if (idade >= 25) { qi=qi+1; } else if ((altura <= 180) && (idade < 18)) { ia=ia+1; } } media=(qi+ia)/(11); printf ("A quantidade de jogadores com altura acima de 1.80 é: %.0f\n\n", qa); printf ("A quantidade de jogadores com idade acima de 25 é: %.0f\n\n", qi); printf ("A quantidade de jogadores com altura igual ou abaixo de 180 e idade abaixo de 18 é: %.0f\n\n", ia); printf ("A media de idade dos jogadores é de: %.2f\n\n\n", media); system ("pause"); return 0; }
-
Olá galera, minha primeira vez aqui no fórum. Sou iniciante em programação, iniciei em linguagem C, já fiz alguns programas bem básicos. Achei eles fáceis e resolvi propor um desafio a mim mesmo: Desenvolver uma calculadora simples. Pode ser algo extremamente bobo e simples pra quem já programa, mas eu estou quebrando a cabeça com isso. Primeiro, resolvi fazer uma calculadora, em que por o usuário escolha quantos numeros irá participar da operação escolhida Ex: O usuário escolhe a opção de soma, logo em seguida, pergunto a ele quantos numeros ele deseja somar, e em seguida, peço pra que digite os numero, e eu os somo e apresento o resultado. O código da parte de soma ficou o seguinte: Adição: case 1: { printf ("Digite com quantos numeros voce desejar trabalhar:"); scanf("%d", &valor); for (i=1; i<=valor; i++) { printf ("Digite o %dº valor: ", i); scanf ("%d", &x); resultado=resultado+x; } { printf ("A soma desses valores é: %d\n\n\n", resultado); system("pause"); /*Para que o resultado fique na tela ate que o usuario pressione alguma tecla para que não volte direto ao menu*/ } break; } Então passei para subtração, mas não faço ideia de como realizar a operação de subtração com o for, pois não vou armazenar cada numero digitado em um variável diferente, pois não sei quantos números o usuário irá digitar, como por exemplo se eu soubesse que seria dois, retiraria o for, solicitaria os dois números, armazenaria cada um em uma variável e depois faria a subtração dela. Mas com o for não consigo fazer isso, então não faço ideia de como fazer isso, já tentei de tudo que consigo imaginar, nunca consigo retornar o resultado correto! Alguém poderia me dar uma sugestão? Ah, e o código da operação de substração até o momento está assim: Subtração: case 2: { printf ("Digite com quantos numeros voce desejar trabalhar:"); scanf("%d", &valor); for (i=1; i<=valor; i++) { printf ("Digite o %dº valor:", i); scanf ("%d", &x); resultado= } { printf ("A subtracao entre desses valores é: %d\n", resultado); system("pause"); } break; } Peço desculpas pelo tamanho do tópico, não consegui maneira mais simplificada de explicar o meu problema