PDA

View Full Version : L'ho fatto finalmente


Vasec87
01-12-2006, 10:47
ho fatto l'esercizio che vi avevo chiesto di farmi, mi sembra che funziona correttamente ma mi dice che manca una graffa e non so dove metterla, a me sembra giusto. potete darci un'occhiata?

grazie

#include <stdio.h>

int main()
{


int a[1000];
int b[1000];
int i=0;
int j=0;
int k=0;
int hold;


scanf("%d", &j);

for(i=0;i<j;i++){
scanf("%d", &a[i]);
scanf("%d", &b[i]);
}

for(i=0;i<j;i++){
for(k=0;k<j-1;k++){
if(a[k]>a[k+1]){
hold=a[k];
a[k]=a[k+1];
a[k+1]=hold;}}}
for(i=0;i<j;i++){
for(k=0;k<j-1;k++){
if(b[k]>b[k+1]){
hold=b[k];
b[k]=b[k+1];
b[k+1]=hold;}}}
for(i=0;i<j;i++){
if(a[i]==b[i]){
printf("1\n");}

else {
printf("0\n");}}


è quello sulla permutazione di due vettori. cioè se a{1,2,1} e b{2,1,1}
sono uguali

orpheus
01-12-2006, 11:07
Così ad occhio manca esattamente l'ultima graffa che chiude il main

Vasec87
01-12-2006, 11:13
si ora funziona, però perchè se per esempio i due vettori sono uguali mi stampa tanti 1 quanti sono gli elementi? a me serve di stampare solo un 1 per dire se è vero e uno 0 per dire se è falso.

puoi provarlo e dirmi come devo modificarlo?

è una cazzata, anche l'altra volta l'ho fatta ma non mi ricordo cos'era

grazie

orpheus
01-12-2006, 11:50
Tipo così dovrebbe funzionare, non l' ho provato



#include <stdio.h>

int main()
{


int a[1000];
int b[1000];
int i=0;
int j=0;
int k=0;
int hold;
int uguale = 0;


scanf("%d", &j);

for(i=0;i<j;i++){
scanf("%d", &a[i]);
scanf("%d", &b[i]);
}

for(i=0;i<j;i++){
for(k=0;k<j-1;k++){
if(a[k]>a[k+1]){
hold=a[k];
a[k]=a[k+1];
a[k+1]=hold;}}}
for(i=0;i<j;i++){
for(k=0;k<j-1;k++){
if(b[k]>b[k+1]){
hold=b[k];
b[k]=b[k+1];
b[k+1]=hold;}}}

for(i=0;i<j;i++){
if(a[i]==b[i]){
uguale = 1;}
else {
uguale = 0;
break;}
}

printf("%d", uguale);
}

Vasec87
01-12-2006, 12:03
funziona

grazie