# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C >  دستور فاكتوريل  ودستور عدد تام

## sogolhedayatmanesh

سلام من دستورات زير رو تريس كردم در ظاهر درسته اما موقع اجرا خروجي درست بهم نمي ده مي شه كمكم كنيد؟؟؟؟؟


                                      مي شه سريع به من جواب بديد ممنون    


دستور زير خروجي فوق رو مي ده :

1+((x^2)/(2!))+((x^3)/(3!))+((x^4)/(4!))+...+((x^n)/(n!))


#include<iostream.h>
   #include<stdio.h>
   main()
   {
   int x,f;
   float t,n;
   cin>>x;
   for(int i=2;i<=x;i++)
   f=(i+1)*(i+2);
   t=i/f;
   n=t+1;
   cout<<n;
   }

دستور زير بدست اوردن عدد تام است
          عدد تام عددي است كه با مجموع مقسوم عليه ها ي خودش برابر باشد


مثال                                   1+2+3=6               (1-2-3) مقسوم عليهاي عدد 6



#include<iostream.h>
#include<stdio.h>
main()
{
int tam,m;
cin>>tam;
for(int i=1;i<tam;i++)
if (tam%i==0)
m=m+i;
if(m==tam)
cout<<"yessssssssssssssssssss";
if (m!=tam)
cout<<"no";
}



توليد عددهاي تام بين 1000-3





#include<iostream.h>
#include<stdio.h>
main()
{
int m;
for(int j=3;j<=1000;j++)
for(int i= 1;i<j;i++)
if (j%i==0)
m+=i;
if(m==j)
cout<<j;
}

----------


## ali zi zeperto

تو دوتا  برنامه آخری  شما به متغیر m مقدار اولیه ندادی.
بعدیش هم مشکلش همینه.

----------


## rezasafdari

سلام
2 تا مشكل ديگه هم داره ....
اوليش اينكه از اعلان ها استفاده نميكنيد و به همين خاطره كه cout و cin خونده نميشه ...


using name space std;



دوميش هم عدم استفاده از بلاك ها براي حلقه ي for ... به اين ترتيب فقط خط اول بعد از حلقه تكرار ميشه ....
براي تكرار چند دستور بايد تمام دستورات بعد از for داخل بلاك قرار بگيرند :


for(int i=1;i<tam;i++)
{
if (tam%i==0)
  m=m+i;
}


----------
سورس اصلاح شده ي اعداد تام :


#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int tam,m,t;
m=0;
cin>>tam;
for(int i=1;i<tam;i++)
{
if (tam%i==0)
  m=m+i;
}
if(m==tam)
cout<<"yessssssssssssssssssss";
if (m!=tam)
cout<<"no";
    system("PAUSE");
    return 0;
}


--
پ . ن 1 : دست بوس استادتون باشيد كه برنامه سازي 1 رو با ‍C++‎‎‎ شروع كردند ...
پ. ن 2 : عجيبه كه سر فايل stdio.h رو معرفي كرده ، اما using ها رو نه !؟
-
مويد باشيد

----------


## ali zi zeperto

> دوميش هم عدم استفاده از بلاك ها براي حلقه ي for ... به اين ترتيب فقط خط اول بعد از حلقه تكرار ميشه ....
> براي تكرار چند دستور بايد تمام دستورات بعد از for داخل بلاك قرار بگيرند :


وقتی بدنه for , if بیشتر از یه دستور ندارن الزامی برای گذاشتن { , } نیست.
غیر از این مشکل دیگه خطایی نیست.البته اگر از فضای نام استفاده کنند بهتر هم هست ولی باز هم بدون اون اجرا میشه.سرفایلشون رو کامل ذکر کردن.

----------

