Fitorinaudo Posted March 14, 2013 at 06:07 PM Report #499233 Posted March 14, 2013 at 06:07 PM (edited) boas tou aqui com uma duvida. queria que me ajudassem como é que faço para imprimir o vector_inteiros todo sff... urgente.. Este codigo so imprime o primeiro argumento que eu der, eu quero fazer por exemplo, ./exe 1 2 3 4 5 Output: 1 2 3 4 5 Se alguem me puder ajudar agradecia. #include <stdio.h> #include <stdlib.h> int main (int argc, char *argv[]) { int i; int vector_inteiros[10]; for(i=0; i < argc; i++){ if(strncmp( argv[i+1],"a")==0) { vector_inteiros[i] = atoi(argv[i+1]); //Para imprimir todos os elementos é preciso fazer um ciclo para percorrer todos os elementos do vector. printf("%d\n", vector_inteiros[i]); i++; } } return 0; } Edited March 14, 2013 at 06:09 PM by pmg GeSHi
HappyHippyHippo Posted March 14, 2013 at 06:12 PM Report #499234 Posted March 14, 2013 at 06:12 PM isto serve para que ? if(strncmp( argv[i+1],"a")==0) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted March 14, 2013 at 06:15 PM Report #499235 Posted March 14, 2013 at 06:15 PM 1) o prototipo da funcao strncmp() esta no header <string.h>. Faz o #include desse header! 2) a funcao strncmp() leva 3 argumentos: so escreveste 2. 3) a ultima vez do ciclo vai tentar chamar atoi(NULL). What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Fitorinaudo Posted March 14, 2013 at 06:22 PM Author Report #499236 Posted March 14, 2013 at 06:22 PM (edited) Antes de mais. Podem-me dizer porque e que este codigo nao imprime 1 argumento e esse imprime? é que são iguais. #include <stdio.h> #include <stdlib.h> int main (int argc, char *argv[]) { int i; int vector_inteiros[10]; for(i=0; i < argc; i++){ if(strncmp( argv[i+1],"a")==0) { int adiciona(int argc, char *argv[]); printf("%d\n", vector_inteiros[i]); } return 0; } int adiciona (int argc, char *argv[]){ vector_inteiros[i] = atoi(argv[i+1]); } } O printf deste codigo é sempre 10. podem.me dizer pq sff? Edited March 14, 2013 at 06:34 PM by pmg GeSHi
pmg Posted March 14, 2013 at 06:36 PM Report #499240 Posted March 14, 2013 at 06:36 PM O teu ultimo codigo nao compila!! http://ideone.com/7GPwju What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Fitorinaudo Posted March 14, 2013 at 10:10 PM Author Report #499253 Posted March 14, 2013 at 10:10 PM nao compila? acabei de testar na linha de comandos e compila... estranho. eu meto qualquer numero e ele imprime sempre 10. podem-me ajudar a imprimir o que meto no input sff?
pmg Posted March 14, 2013 at 10:26 PM Report #499254 Posted March 14, 2013 at 10:26 PM Se o programa nao faz o que esperas, uma boa solucao para perceber a razao é usar o debugger. Para a linha de comandos Linux, eu gosto do cgdb (um interface para o gdb). What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Marzkor Posted March 14, 2013 at 10:47 PM Report #499256 Posted March 14, 2013 at 10:47 PM tas a usar um text editor ? ou um IDE ? Se for um text editor vê la se fizeste ctrl + s (guardar) antes de compilar Se o programa nao faz o que esperas, uma boa solucao para perceber a razao é usar o debugger. Para a linha de comandos Linux, eu gosto do cgdb (um interface para o gdb). gdb é pior que a idade da pedra. Aquilo para fazer alguma coisa leva anos. 😄
Fitorinaudo Posted March 14, 2013 at 11:03 PM Author Report #499262 Posted March 14, 2013 at 11:03 PM claro que guardei.. que erro estupido. num código ele imprime o que eu meto como input tal e qual, noutro imprime sempre o mesmo numero independenetemente do input que der. da sempre: 134520832 Sabem porque? apenas chamei a funçao..
HappyHippyHippo Posted March 14, 2013 at 11:09 PM Report #499265 Posted March 14, 2013 at 11:09 PM (edited) claro que guardei.. que erro estupido. num código ele imprime o que eu meto como input tal e qual, noutro imprime sempre o mesmo numero independenetemente do input que der. da sempre: 134520832 Sabem porque? apenas chamei a funçao.. Meti duas pizzas no forno durante 20 minutos exactos. Não foram ao mesmo tempo, mas o forno manteve a mesma temperatura. As pizas estavam na mesma prateleira do forno, logo estiveram expostas exactamente à mesma quantidade e intensidade de calor. A primeira até se comia, mas não é que a segunda estava intragável ? sabes o que mudou ? A primeira era uma pizza e a segunda era um sapato !!! conclusão : como achas que será possível responder a um post destes sem dizeres o que escreveste na chamada da função ?!?!? ---- ps : int adiciona (int argc, char *argv[] { vector_inteiros[i] = atoi(argv[i+1]); // isto é impossível compilar // a variável "vector_inteiros" não se encontra declarada dentro da função adiciona // e se pretendes usar a da função main, necessitas de a fornecer } Edited March 14, 2013 at 11:22 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Fitorinaudo Posted March 14, 2013 at 11:25 PM Author Report #499277 Posted March 14, 2013 at 11:25 PM int adiciona (int argc, char *argv[]); Ca em cima no Main. Método ja ta assim e nada ainda: int adiciona (int argc, char *argv[]) { int i; int vector_inteiros[10]; vector_inteiros = atoi(argv); }
HappyHippyHippo Posted March 14, 2013 at 11:28 PM Report #499280 Posted March 14, 2013 at 11:28 PM int adiciona (int argc, char *argv[]); Ca em cima no Main. Método ja ta assim e nada ainda: int adiciona (int argc, char *argv[]) { int i; int vector_inteiros[10]; vector_inteiros = atoi(argv); } leste todos os comentários no código do meu post ? principalmente o último ? o array que estás a usar na função existe somente na função. no momento que a função termina, o array deixa de existir. não tem nada haver com o array existente na função main !!! IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now