infoarena

infoarena - concursuri, probleme, evaluator, articole => Teme => Subiect creat de: Catalin din Martie 11, 2013, 21:12:31



Titlul: Problema Subprograme
Scris de: Catalin din Martie 11, 2013, 21:12:31
Salut, am ajuns la scoala la subprograme si am incercat sa fac un sub program care ridica numarul "n" la puterea "p", doar ca nu stiu unde gresesc ca-mi iese cu totul altceva. Mentionez ca abia am invatat sa fac subprograme si nu stiu multe despre ele.

Citat
#include<iostream>
using namespace std;
int putere(int p,int n)
{
   int i;
   for(i=0;i<=p;i++)
      n*=n;
   return n;
}
int main()
{
int n,p;
cout<<"n=";
cin>>n;
cout<<"p=";
cin>>p;
cout<<putere(p,n);
return 0;
}



Titlul: Răspuns: Problema Subprograme
Scris de: FMI Trifan Mircea Mihai din Martie 11, 2013, 23:15:29
Salut, am ajuns la scoala la subprograme si am incercat sa fac un sub program care ridica numarul "n" la puterea "p", doar ca nu stiu unde gresesc ca-mi iese cu totul altceva. Mentionez ca abia am invatat sa fac subprograme si nu stiu multe despre ele.

Citat
#include<iostream>
using namespace std;
int putere(int p,int n)
{
   int i;
   for(i=0;i<=p;i++)
      n*=n;
   return n;
}
int main()
{
int n,p;
cout<<"n=";
cin>>n;
cout<<"p=";
cin>>p;
cout<<putere(p,n);
return 0;
}



Nu e bine pentru ca la inmultire tu folosesti acelasi n care se modifica deja la pasul anterior, de exemplu: pentru n = 2 la urmatorul pas obtii n = 4, apoi n = 16, apoi n = 256... si ai grija la forul din subprogram pentru ca el face p+1 pasi si practic tie ti-ar trebui p pasi. Corect ar veni cam asa:
Cod:
int putere(int p,int n)
{
   int i, val = 1;
   for(i=1;i<=p;i++)
      val*=n;
   return val;
}
Bafta :ok:


Titlul: Răspuns: Problema Subprograme
Scris de: Catalin din Martie 13, 2013, 22:08:02
Multumesc :)