PDA

Visualizza la versione completa : [C++]problema nel confronto di due vettori di dimensioni diverse


puccio86
04-02-2009, 13:46
Dati due vettori v1(100) v2(90) devo moltiplicare tutti gli elementi di v2 *3(esempio).
Poi devo confrontare ogni valore di v2 con tutti i valori di v1 e se trovo un numero uguale devo fare questo scambio: V1(n-1)=V1[i]//cioè il numero uguale a v2)
Ho scritto questo codice:



#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <conio.h>






int main()
{
int temp=0;
int temp2=0;
int n=100;
int m=90;
int V1[n];
int V2[m];
int i=0;
int j=0;




for(i=0; i<100; i++){
V1[i]=rand() % 100+1;}
for(j=0; j<90; j++){
V2[j]=rand() % 100;}
i=0;
j=0;
printf("\n\n");
printf("I valori iniziali del primo vettore sono : ");
printf("\n\n");
for(i=0;i<100;i++){
printf("%d ,",V1[i]);}
printf("\n\n");
printf("I valori iniziali del secondo vettore sono : ");
printf("\n\n");
for(j=0;j<90;j++){
printf("%d ,",V2[j]);}
printf("\n\n");
j=0;
for (j=0;j<90;j++){
V2[j]=V2[j]*3;}
printf("I valori del secondo vettore dopo la moltiplicazione sono : ");
printf("\n\n");
for(j=0;j<90;j++){
printf("%d ,",V2[j]);}
j=0;
i=0;
for(j=0;j<90;j++){
temp2=V2[j];
for(i=0;i<100;i++){
if(V1[i]=temp2){
temp=V1[i];
V1[i]=V1[n-1];
V1[n-1]=temp;}
}temp2=0;}
printf("\n\n");
printf("I valori finali del primo vettore sono : ");
printf("\n\n");
for(i=0;i<100;i++){
printf("%d ,",V1[i]);}
printf("\n\n");

printf("\n\n");
printf("\n\n");


system("PAUSE");



}



Ma i risultati non sono quelli desiderati e non riesco a capire il perchè.Cosa ho sbaglaio per favore aiutatemi.

Ecco l'output:





I valori iniziali del primo vettore sono :
42 ,68 ,35 ,1 ,70 ,25 ,79 ,59 ,63 ,65 ,6 ,46 ,82 ,28 ,62 ,92 ,96 ,43 ,28 ,37 ,92
,5 ,3 ,54 ,93 ,83 ,22 ,17 ,19 ,96 ,48 ,27 ,72 ,39 ,70 ,13 ,68 ,100 ,36 ,95 ,4 ,
12 ,23 ,34 ,74 ,65 ,42 ,12 ,54 ,69 ,48 ,45 ,63 ,58 ,38 ,60 ,24 ,42 ,30 ,79 ,17 ,
36 ,91 ,43 ,89 ,7 ,41 ,43 ,65 ,49 ,47 ,6 ,91 ,30 ,71 ,51 ,7 ,2 ,94 ,49 ,30 ,24 ,
85 ,55 ,57 ,41 ,67 ,77 ,32 ,9 ,45 ,40 ,27 ,24 ,38 ,39 ,19 ,83 ,30 ,42 ,

I valori iniziali del secondo vettore sono :

33 ,15 ,39 ,58 ,4 ,30 ,77 ,6 ,73 ,86 ,21 ,45 ,24 ,72 ,70 ,29 ,77 ,73 ,97 ,12 ,86
,90 ,61 ,36 ,55 ,67 ,55 ,74 ,31 ,52 ,50 ,50 ,41 ,24 ,66 ,30 ,7 ,91 ,7 ,37 ,57 ,
87 ,53 ,83 ,45 ,9 ,9 ,58 ,21 ,88 ,22 ,46 ,6 ,30 ,13 ,68 ,0 ,91 ,62 ,55 ,10 ,59 ,
24 ,37 ,48 ,83 ,95 ,41 ,2 ,50 ,91 ,36 ,74 ,20 ,96 ,21 ,48 ,99 ,68 ,84 ,81 ,34 ,5
3 ,99 ,18 ,38 ,0 ,88 ,27 ,67 ,

I valori del secondo vettore dopo la moltiplicazione sono :

99 ,45 ,117 ,174 ,12 ,90 ,231 ,18 ,219 ,258 ,63 ,135 ,72 ,216 ,210 ,87 ,231 ,219
,291 ,36 ,258 ,270 ,183 ,108 ,165 ,201 ,165 ,222 ,93 ,156 ,150 ,150 ,123 ,72 ,1
98 ,90 ,21 ,273 ,21 ,111 ,171 ,261 ,159 ,249 ,135 ,27 ,27 ,174 ,63 ,264 ,66 ,138
,18 ,90 ,39 ,204 ,0 ,273 ,186 ,165 ,30 ,177 ,72 ,111 ,144 ,249 ,285 ,123 ,6 ,15
0 ,273 ,108 ,222 ,60 ,288 ,63 ,144 ,297 ,204 ,252 ,243 ,102 ,159 ,297 ,54 ,114 ,
0 ,264 ,81 ,201 ,

I valori finali del primo vettore sono :

81 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,2
01 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,2
01 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,2
01 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,2
01 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,2
01 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,201 ,2
01 ,201 ,201 ,201 ,


Premere un tasto per continuare . . .

puccio86
04-02-2009, 13:51
leleFT va bene cosi ? se non va bene scusami non era mia intenzione cerchero di aggiustarlo ancora

LeleFT
04-02-2009, 13:54
Originariamente inviato da puccio86
leleFT va bene cosi ? se non va bene scusami non era mia intenzione cerchero di aggiustarlo ancora
Ora va bene... attento però a chiudere i tag CODE:



codice


L'ho corretto io.

Ciao. :ciauz:

puccio86
04-02-2009, 13:57
Grazie mille :) non è che per caso sai darmi una mano a risolvere il mio piccolo problema??

puccio86
04-02-2009, 16:32
grazie di tutto ma ho già risolto da solo con seguente codice:




#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <conio.h>

int main()
{
int temp=0;
int temp2=0;
int n=100;
int m=90;
int V1[n];
int V2[m];
int i=0;
int j=0;

for(i=0; i<100; i++){
V1[i]=rand() % 300;}
for(j=0; j<90; j++){
V2[j]=rand() % 25;}
i=0;
j=0;
printf("\n\n");
printf("I valori iniziali del primo vettore sono : ");
printf("\n\n");
for(i=0;i<100;i++){
printf("%d ,",V1[i]);}
printf("\n\n");
printf("I valori iniziali del secondo vettore sono : ");
printf("\n\n");
for(j=0;j<90;j++){
printf("%d ,",V2[j]);}
printf("\n\n");
j=0;
for (j=0;j<90;j++){
V2[j]=V2[j]*15;}
printf("I valori del secondo vettore dopo la moltiplicazione sono : ");
printf("\n\n");
for(j=0;j<90;j++){
printf("%d ,",V2[j]);}
j=0;
i=0;
for(j=0;j<90;j++){
for(i=0;i<100;i++){
if(V2[j]==V1[i]){
temp=V1[i];
V1[i]=V1[n-1];
V1[n-1]=temp;
temp=0;}}}
printf("\n\n");
printf("I valori finali del primo vettore sono : ");
printf("\n\n");
for(i=0;i<100;i++){
printf("%d ,",V1[i]);}
printf("\n\n");

printf("\n\n");
printf("\n\n");


system("PAUSE");



}

Loading