Orar semigroup #2

Orar semigroup #2

Probleme pointeri - 13 octombrie

1) Se dă un tablou de n numere întregi
a) să se citească elementele tabloului folosind pointeri
b) să se afişeze elementele tabloului folosind pointeri
c) să se afişeze elementele care sunt egale cu media aritmetică a vecinilor
d) să se inverseze elementele tabloului folosind pointeri

#include<iostream>
using namespace std;
int main()
{int aux,a[100],*p,n,i,*q,k,j;
cout<<"n=";cin>>n;
p=a;
for(i=0;i<n;i++,p++)
    cin>>*p;
p=a;
cout<<endl;

for(i=0;i<n;i++,p++)
    cout<<*p<<endl;
p=a+1;
cout<<endl;

for(i=1;i<n-1;i++,p++)
    if( (float)( *(p-1)+*(p+1) )/2==*p)
        cout<<*p<<" este egal cu media aritmetica dintre "<<*(p-1)<<" si "<<*(p+1)<<endl;

if(n%2==0)  
    {p=a+n/2-1;
    q=a+n/2;}
else {p=a+n/2-1;
      q=a+n/2+1;}
cout<<endl;

for(i=0;i<n/2;i++)
{aux=*p;
*p=*q;
*q=aux;
p--;
q++;}

p=a;
for(i=0;i<n;i++,p++)
    cout<<*p<<endl;
}

marți, 12 octombrie 2010 by DlMuresan
Categories: , , , | 1 comment

One Comment

  1. #include
    using namespace std;
    int main ()
    {
    int k=0,n,c=0,x[10];
    char a[100],*p;
    cin.get(a,100);
    n=strlen(a);
    for (k=0;k<=9;k++)
    {x[k]=0;}
    if (isalpha(a[0])) {c++;
    a[0]=islower(a[0]);
    }
    for (p=a;p<n+a;p++)
    {if (*p==' ' && isalpha(*(p+1))!=0) c++;
    }
    cout<<"nr de cuv "<<c<<endl;
    for (p=a;*p;p++)
    {if (isdigit(*p)) {x[*p-'0']++;
    }
    }
    for (k=0;k<=9;k++)
    {cout<<"Cifra "<<k<<" apare de "<<x[k]<<" ori."<<endl;
    }
    for (p=a;*p;p++)
    {if (*(p-1)==' ' && isalpha(*p)!=0)
    {*p=toupper(*p);
    }
    }
    cout<<a;
    }

Leave a Reply