suzy Posted November 8, 2007 at 12:18 PM Report Share #146085 Posted November 8, 2007 at 12:18 PM nao estou a entender o enunciado, parece-me " data-emoticon="true" height="20" src="https://cdn.portugal-a-programar.org/public/emoticons/wallbash.gif" srcset="https://cdn.portugal-a-programar.org/public/emoticons/wallbash@2x.gif 2x" title=" " width="20"> tenho o seguinte problema: Desenvolva uma função, que receba dois vectores de inteiros (e respectiva dimensão) e verifique se estes são iguais. A função deve devolver 1 se os dois vectores forem iguais ou devolver 0 se forem diferentes. Considere que dois vectores são iguais se, na mesma posição, tiverem elementos com o mesmo valor. fiz assim: #include<stdio.h> int verifica( int v[], int b[],int dimv, int dimb){ int i,j; for(i=0;i<dimv;i++){ printf(" valores %d\n",i+1); scanf("%d",&v[i]); } for(i=0;i<dimb;i++){ printf(" valores %d\n",i+1); scanf("%d",&b[i]); } for(i=0;i<dimv;i++){ for(j=0;j<dimb;j++){ if(v[i]==b[i]) return 1; else return 0; } } } main() { int v[5],b[5],i,resultado;// que coloco na dimensao do vector? resultado=verifica(v,b,5,5); printf(" o resultado e %d\n",resultado); fflush(stdin); getchar(); } o meu problema ta na dimensao de cada vector, a dimensao e o utilizador que escolhe, no coloco qd declaro o vector v[?], e o vector [?], se a dimensao do vector tem de ser escolhida pelo utilizador?? se colocar so v[] b[] no main nao compila porque falta o tamanho do vector, acho que tou a fazer confusao com alguma coisa ? Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 8, 2007 at 12:25 PM Report Share #146087 Posted November 8, 2007 at 12:25 PM Parece-me que o enunciado apenas te pede para criares a função que compara dois vectores. Só precisas da main para testares a função, e nesse caso, podes usar vectores com tamanhos definidos por ti. Para além disso, convém inicializares os vectores na main e não na verifica. Na função verifica estás a fazer trabalho desnecessário. Só precisas de um ciclo... Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
mogers Posted November 8, 2007 at 11:57 PM Report Share #146251 Posted November 8, 2007 at 11:57 PM O Rui Carlos tem razão...a tua preocupação devia ser só a função de verificação... Em todo o caso... sabes alocar memoria dinâmicamente? Podias resolver o teu "problema" dessa maneira... main() { int * v, * b , i , resultado , dimv , dimb; scanf("%d", & dimv); v = (int * ) malloc( sizeof(int) * dimv ); scanf("%d", & dimb); b = (int * ) malloc( sizeof(int) * dimb ); resultado=verifica(v,b,dimv,dimb); printf(" o resultado e %d\n",resultado); fflush(stdin); getchar(); } Edit: ops.. forum de C 😞 Edit2: Não está explicito no enunciado, mas é normal 2 vectores só serem iguais se tiverem o mesmo tamanho... falta-te testar isso... "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação. Link to comment Share on other sites More sharing options...
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