Informatică, întrebare adresată de Mihai2628, 9 ani în urmă

Se dau 2 vectori x si y cu n, respectiv m elemente. Construiti un vector z cu elementele prime din x si y.

Nu stiu ce scriu gresit, nu imi afiseaza nimic.

#include
using namespace std;

int x[100],n,y[100],m,z[100],k;

void cit (int l[100], int nr_elem){
int i;
cin>>nr_elem;
for (i=1;i<=nr_elem;i++)
cin>>l[i];
}

int prim (int numar){
if (numar<2)
return 0;
int i;
for (i=1;i<=numar/2;i++)
if (numar%i==0)
return 0;
return 1;

}

void construire (int a[], int nr_elem1,int b[], int nr_elem2, int c[],int &nr){
int i;
nr=0;
for (i=1;i<=nr_elem1;i++)
if (prim(a[i])==1){
nr++;
c[nr]=a[i];}

for (i=1;i<=nr_elem2;i++)
if (prim(b[i])==1){
nr++;
c[nr]=b[i];}
}

int main (){
cit (x,n);
cit(y,m);
cout< construire(x, n, y, m, z, k);
int i;
for (i=1;i<=k;i++)
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
1

#include <iostream>

using namespace std;

int x[100],n,y[100],m,z[100],k;

void cit (int l[100], int &nr_elem){// avem nevoie de nr_elem dupa ce se executa functia, deci il declaram ca referinta

int i;

cin>>nr_elem;

for (i=1;i<=nr_elem;i++)

cin>>l[i];

}

int prim (int numar){

if (numar<2)

return 0;

int i;

for (i=2;i<=numar/2;i++)// INCEPEM VERIFICAREA DE DIVIZORI DE LA 2!!! Orice numar % 1 == 0 -> pentru toate numerele se va returna 0 si vectorul construit va fi gol

if (numar%i==0)

return 0;

return 1;

}

void construire (int a[], int nr_elem1,int b[], int nr_elem2, int c[],int &nr){

int i;

nr=0;

for (i=1;i<=nr_elem1;i++)

if (prim(a[i])==1){

nr++;

c[nr]=a[i];}

for (i=1;i<=nr_elem2;i++)

if (prim(b[i])==1){

nr++;

c[nr]=b[i];}

}

int main (){

cit (x,n);

cit(y,m);

construire(x, n, y, m, z, k);

int i;

for (i=1;i<=k;i++)

cout<< z[i] << ' ';

return 0;

}


Mihai2628: Am inteles. Mersi mult!
Alte întrebări interesante