GDBO 0 Denunciar post Postado Julho 3, 2008 preciso que os vetores o 1º receba nome o 2º código e o 3º valor. depois tenho que mostrar os dados e suas posiçoes no vetor e por ultio a soma total do 3º vetor. se alguem tiver umas ideias de como melhorar ele ou dar uma corrigida eu agradeço.. ======= #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> main () { int tam; // variavel tamanho vetor float soma=0; printf ("\nDigite o tamanho desejado para o vetor: "); scanf ("%d", &tam); int cod[tam]; // vetor codigo float valor[tam]; // vetor valores char nome[20][tam]; // vetor string para armazenar valores for (int i=0; i<tam; i++) // declarando i assim ele se torna uma variavel temporaria, laço para armazenar dados no vetor { system ("cls"); cod[i] = i; // atribuindo o codigo printf ("\nDigite o nome do cliente: "); scanf ("%s", &nome[i]); // atribuindo o nome printf ("\nDigite o valor de sua divida: "); scanf ("%f", &valor[i]); // atribuindo valor soma = soma + valor[i]; // somando o total do vetor } printf ("\n\t\tCodigo Nome Valor\n"); // organizando impressão for (int i=0; i<tam; i++) // declarando i assim ele se torna vaiavel temporaria, laço para imprimir dados { printf ("\n\t\t %d - %s %.2f", i+1, nome[i], valor[i]); // função para imprimir dados } printf ("\n\n\t\tO valor total do vetor e: R$ %.2f", soma); // função para apresentar o valor total do vetor getche(); // segura tela } Compartilhar este post Link para o post Compartilhar em outros sites
GDBO 0 Denunciar post Postado Julho 3, 2008 ngm? :S Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Julho 3, 2008 Parece que está funcionando. A lógica está correta, não tem muito o que fazer pra melhorar. Altere essas partes: // float soma=0; // inicialize float assim: float soma=0.0; . . . // scanf ("%s", &nome[i]); // atribuindo o nome // tire o & pois nome[i] ja eh o endereço desse vetor scanf ("%s", nome[i]); Compartilhar este post Link para o post Compartilhar em outros sites
GDBO 0 Denunciar post Postado Julho 3, 2008 ta rodando sim eu que tava voando aqui é que se por um vetor ex: 10 posições vou ter que por os 10 nomes e valores... eu achei que tava repetindo hehehe obrigado pela dica ali grato ;D Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 3, 2008 main () O tipo int nao é mais implicito...Tem que declarar. E podia ter deixado o algoritmo no mesmo topico... Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Julho 3, 2008 Não repete porque a variável "i" a cada passagem pelo laço fica com um valor diferente. Foi nada. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif ta rodando sim eu que tava voando aqui é que se por um vetor ex: 10 posições vou ter que por os 10 nomes e valores... eu achei que tava repetindo hehehe obrigado pela dica ali grato ;D Compartilhar este post Link para o post Compartilhar em outros sites
GDBO 0 Denunciar post Postado Julho 3, 2008 Ahh outra coisa que nao consegui fazer... pra colocar algo pra sair ex: digite 0 pra sair... mais queria deixar pra aparecer depois do resultado da soma do terceiro vetor eu tentei aqui mais aparecia em todas as opçoes hehe tem como fazer isso depois da ultma soma? tnks Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Julho 3, 2008 Se quiser sair do laço a qualquer momento voce não saberá o tamanho do vetor. Ai o mais indicado é usar alocação dinamica. Se não precisar usar vetor fica simples. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 3, 2008 #include <stdio.h> #include <string.h> int main (void) { int tam; // variavel tamanho vetor float soma=0; int opcao = 1; while (opcao) { printf ("\nDigite o tamanho desejado para o vetor: "); scanf ("%d", &tam); int cod[tam]; float valor[tam]; char nome[20][tam]; for (int i=0; i<tam; i++) { cod[i] = i; printf ("\nDigite o nome do cliente: "); scanf ("%s", &nome[i]); printf ("\nDigite o valor de sua divida: "); scanf ("%f", &valor[i]); soma = soma + valor[i]; } printf ("\n\t\tCodigo Nome Valor\n"); for (int i=0; i<tam; i++) printf ("\n\t\t %d - %s %.2f", i+1, nome[i], valor[i]); printf ("\n\n\t\tO valor total do vetor e: R$ %.2f", soma); printf("\nDigite 0 para sair:"); scanf("%d",&opcao); }; } Evite comentários que não acrescentam nada: // atribuindo o codigo , // atribuindo o nome , // função para imprimir dados Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Julho 3, 2008 Não existe nenhuma restrição quanto a forma que foi declarado o vetor? Simulando uma alocação dinâmica? Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Julho 4, 2008 Não existe nenhuma restrição quanto a forma que foi declarado o vetor? Simulando uma alocação dinâmica? existe compilador que reclama, mas roda perfeitamente.. Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Julho 5, 2008 Qual a finalidade de usar ponteiros neste caso então? Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Julho 5, 2008 Qual a finalidade de usar ponteiros neste caso então? Neste caso nao, mas é melhor ir se acostumando a usar ponteiros porque existem casos que você vai precisar realocar e desse jeito nao dá...Imagine que você tenha um vetor ja preenchido e você precise eliminar 1 valor, se você nao tiver usando ponteiro nao terá como liberar aquele espaco na memoria depois de eliminar o elemento no vetor.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Julho 6, 2008 hmm, saquei ^^ Compartilhar este post Link para o post Compartilhar em outros sites