Ajutatima dintr-o problema C++ sa o fac in limbajul C, problema :Scrieţi un program care citeşte de la tastatura un număr natural n (n<100) și un șir cu n numere întregi din intervalul [100, 999]. Programul construieşte un șir de numere rezultat prin înlocuirea fiecărui număr din şirul citit cu numărul obţinut prin interschimbarea cifrei unităților cu cifra sutelor. Numerele din noul șir se vor afişa pe ecran separate printr-un singur spaţiu. Exemplu : pentru n=3 si şirul 123 , 904 , 500 se afişează 321 , 409 , 5.

PROBLEMA IN C++
#include <iostream>
using namespace std;
int main(){
int n,v[100],i,x,j=0;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++){
cout<<"x=";cin>>x;
j++;
v[j]=x%10*100+x/10%10*10+x/100;}
n=j;
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}
Ajutatima so copilez in C.



Răspuns :

#include <iostream>
#include <string.h>
#include <stdlib.h>
 using namespace std;
int main()
{
   int v[101],n,i;
   char *p,c[20];
   cin>>n;
   for(i=1;i<=n;i++)
   cin>>v[i];
   for(i=1;i<=n;i++)
   {
       if(v[i]%100==0)
       cout<<v[i]/100<<" ";
       else if (v[i]%10==0)
       {
        v[i]/=10;
       p=itoa(v[i],c,10);
       strrev(p);
       cout<<p<<" ";
       }
       else
       {
           p=itoa(v[i],c,10);
       strrev(p);
       cout<<p<<" ";
       }

   }
   return 0;
}
Si uite aici o metoda in caz ca nu ai facut siruri de caractere:
#include <iostream>

 using namespace std;
int main()
{
   int v[101],n,i,ogli;
   cin>>n;
   for(i=1;i<=n;i++)
    cin>>v[i];
   for(i=1;i<=n;i++)
   {
       ogli=0;
       while(v[i])
       {
           ogli=ogli*10+v[i]%10;
           v[i]/=10;
       }
         cout<<ogli<<" ";
   }

   return 0;
}