drk1 0 Denunciar post Postado Novembro 30, 2011 Boa "Madrugada" Tenho em mãos 2 exercícios de vetor que não sei resolver pois faltei 2 aulas de explicações e digamos que ouvindo de "colegas que não prestam atenção" não ajudou muito então venho até aqui "novamente" pedir ajuda de vocês pra salvar minha pele; Obs: Quero usar estes exercícios para estudar(como base): 7. Faça um programa em C que leia um vetor com 20 elementos e o mostre. Em seguida, troque o primeiro elemento com o último, o segundo com o penúltimo, etc, até o décimo com o décimo primeiro e mostre o vetor assim modificado. 5. Faça um programa em C que leia uma série de N notas, e calcule quantas são 10% acima da média e quantas são 10% abaixo. Fico no aguardo(tenho prova amanha(hoje) e to me virando pra tentar entender haha grato a todos!!! Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Novembro 30, 2011 Sugiro que poste o código que já conseguiu fazer, e que leia isto: http://guipn.com/cpa.htm Compartilhar este post Link para o post Compartilhar em outros sites
drk1 0 Denunciar post Postado Novembro 30, 2011 haha na enrolação enrolação eu não saiu do printf e do scanf falta toda a logica Compartilhar este post Link para o post Compartilhar em outros sites
Shurd 0 Denunciar post Postado Novembro 30, 2011 haha na enrolação enrolação eu não saiu do printf e do scanf falta toda a logica Considerando que voce saiba mostrar um vetor na tela e ler ele a partir de scanf faça o seguinte: Uma função que troca os valores do vetor de modo que o primeiro troque com o ultimo Portanto um loop em que i começa em 0 e vai até a metade do total de numeros que existem no vetor, no caso 20/2, e um j que comece no ultimo numero e termino em 0, no caso ele é 19. Depois a logica para trocar é assim aux=vet[i] vet[i]=vet[j] vet[j]=aux; Para a segunda questao faça um loop que percorra todo o vetor e um if que tenha a condicao, (nota>=MEDIA*1.1), se sim acima da media +1, se não se a (nota<=MEDIA*0.9), se sim abaixo da media +1, senão na media +1. Se não conseguir de jeito nenhum eu te passo os codigos Compartilhar este post Link para o post Compartilhar em outros sites
drk1 0 Denunciar post Postado Novembro 30, 2011 Considerando que voce saiba mostrar um vetor na tela e ler ele a partir de scanf faça o seguinte: Uma função que troca os valores do vetor de modo que o primeiro troque com o ultimo Portanto um loop em que i começa em 0 e vai até a metade do total de numeros que existem no vetor, no caso 20/2, e um j que comece no ultimo numero e termino em 0, no caso ele é 19. Depois a logica para trocar é assim aux=vet[i] vet[i]=vet[j] vet[j]=aux; Para a segunda questao faça um loop que percorra todo o vetor e um if que tenha a condicao, (nota>=MEDIA*1.1), se sim acima da media +1, se não se a (nota<=MEDIA*0.9), se sim abaixo da media +1, senão na media +1. Se não conseguir de jeito nenhum eu te passo os codigos grato consegui o primeiro #include <stdio.h> main(){ int vetor[20],i,auxiliar,count=20; for(i=0;i<20;i++){ printf("Digite o %d numero: ",i+1); scanf("%d",&vetor[i]); } for(i=0;i<20;i++){ printf(" %d",vetor[i]); } printf(" \n "); for(i=0;i<10;i++){ count--; auxiliar = vetor[count]; vetor[count] = vetor[i]; vetor[i] = auxiliar; } for(i=0;i<20;i++){ printf(" %d",vetor[i]); } system("pause"); } Obs: se tiver um código mais "escasso" sem gambiarra que eu fiz e puder mandar pra eu analisar agradeço :D agora vou tentar o segundo! valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Dezembro 1, 2011 Por que você diz gambiarra? Não confia no próprio código? Para o que você teve dúvida o código está resolvido de uma maneira correta. A única coisa que você deve notar é que, seguindo os novos padrões da C (de 1999, lol), você deve declarar a função main como retornando um valor int, e colocar uma instrução return no final. Também é boa prática colocar um void na lista de parâmetros de main() para sinalizar que não há nenhum parâmetro. Então você modificaria de: main() { para: int main(void) { E no final do programa, antes do }, você colocaria um: return 0; Que é um código que sinaliza ao sistema operacional que o programa terminou certinho. Retornar outros números diferentes desse (como 1, 2, -3, 42, etc) significam que algo deu errado e que o programa precisou terminar antes do esperado. Você pode fazer isso para terminar um programa que deu um erro no meio, e não dá para continuar, colocando um "return 1;" no lugar... Outra coisa: para utilizar system("pause") você teria que incluir o header <stdlib.h>. Mas é má prática utilizar o system("pause") para pausar o programa, veja abaixo por que: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Dezembro 1, 2011 Só alguns esclarecimentos: o draft do TC3 foi publicado em setembro de 2007, e o return 0; é implícito na main. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Dezembro 1, 2011 Guidjos, Sério, tudo bem que o draft do TC3 tenha sido publicado falando que o return 0 seja implícito na main. Mas ele ainda não é um standard. O que vale hoje é na maioria dos casos o C99 e em alguns ainda o C89. Não faz sentido ficar falando de drafts que ainda não compõe uma standard e que não são implementados pela esmagadora maioria dos compiladores. Devemos utilizar o código de acordo com a última standard, não de acordo com o planejamento da próxima. Quando sair a C1x, faz todo o sentido falar disso, mas creio que agora não. Então continuo dizendo, o return 0 tem que ser explícito na main(), por questões práticas. Abraoçs :D Compartilhar este post Link para o post Compartilhar em outros sites
drk1 0 Denunciar post Postado Dezembro 1, 2011 Obrigado a todos, e obrigado pelos puxões de orelha seguirei as dicas, é que meu professor ensinou assim e como peguei C do zero não tenho muita noção ainda. abraço Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Dezembro 1, 2011 Guidjos, Sério, tudo bem que o draft do TC3 tenha sido publicado falando que o return 0 seja implícito na main. Mas ele ainda não é um standard. O que vale hoje é na maioria dos casos o C99 e em alguns ainda o C89. Não faz sentido ficar falando de drafts que ainda não compõe uma standard e que não são implementados pela esmagadora maioria dos compiladores. Devemos utilizar o código de acordo com a última standard, não de acordo com o planejamento da próxima. Quando sair a C1x, faz todo o sentido falar disso, mas creio que agora não. Então continuo dizendo, o return 0 tem que ser explícito na main(), por questões práticas. Abraoçs :D Oi, Renato. O documento pós-TC3 é o padrão C99. O draft é o que fica disponível de graça (n1256.pdf). A versão atual, impressa, pode ser comprada da IEC. É de acordo com ela que o return 0 é implícito. http://www.open-std.org/jtc1/sc22/wg14/www/standards.html#9899 Technical Corrigendum 3 (ISO/IEC 9899:1999 Cor. 3:2007(E)) was published in 2007. It can be obtained free of charge from ISO. The lastest publically available version of the standard is the combined C99 + TC1 + TC2 + TC3, WG14 N1256, dated 2007-09-07. This is a WG14 working paper, but it reflects the consolidated standard at the time of issue. Compartilhar este post Link para o post Compartilhar em outros sites