Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Problema Informatica  (Citit de 1164 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
scoutroby
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : August 01, 2014, 15:37:33 »

Buna, sunt nou pe forum si as avea nevoie de ajutor cu o problema la informatica.

Scrieti un program C/C++ care citeste de la tastatura un numar natural n (2<n<50) si cele n elemente ale unui tablou unidimensional, numere naturale cu cel mult patru cifre, dintre care cel putin doua au paritate diferita. Programul determina apoi transformarea in memorie a tabloului citit prin eliminarea primului numar par, apoi afiseaza pe ecran elementele tabloului obtinut.
Exemplu: pentru n=11 si tabloul (1, 3, 2, 4, 0, 5, 8, 7, 6, 10, 3)
se obtine tabloul (1, 3, 4, 0, 5, 8, 7, 6, 10, 3)

si asta am facut eu pana acum, eu lucrez cu MinGW Developer Studio:

#include<iostream>
using namespace std;
int main ()
{int n,i,a[100],k=0,par,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";
cin>>a;}
for(i=1;i<=n;i++)
{if(a%2==0)
   {par=a;
k=k+1;}
else
   par=0;
cout<<"\npar="<<par;}
cout<<"\nk="<<k;

cout<<"\nsirul este=";
for(i=1;i<=n;i++)
   cout<<a<<" ";
return 0; }

am aflat cate numere sunt pare din sir dar ce nu reusesc este sa elimin primul element par din sir, daca puteti sa ma ajutati  Smile

Memorat
BaTDucK
Strain


Karma: 10
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #1 : August 01, 2014, 16:39:42 »

Ai putea sa retii pozitia primului numar par din sir iar la scrierea tabloului sa nu-l mai afisezi pe acesta.
Cod:
#include<iostream>
using namespace std;
int N,a[50],par;
int main()
{
    cin>>N;
    for(int i=1;i<=N;++i){
        cin>>a[i];
        if(!par && a[i]%2==0) par=i;
    }
    for(int i=1;i<=N;++i)
        if(i!=par) cout<<a[i]<<" ";
    return 0;
}

Dar cum cerinta precizeaza "transformarea in memorie a tabloului citit ", va trebui sa mutam cu o pozitie inapoi fiecare element citit dupa primul numar par.
Cod:
#include<iostream>
using namespace std;
int N,a[50],par,nr;
int main()
{
    cin>>N;
    for(int i=1;i<=N;++i){
        cin>>nr;
        if(!par && nr%2==0){
            par=1;continue;
        }
        a[i-par]=nr;
    }
    for(int i=1;i<=N-par;++i)
         cout<<a[i]<<" ";
    return 0;
}
Memorat
scoutroby
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #2 : August 01, 2014, 17:23:32 »

Multumesc de ajutor  Thumb up
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines