PDA

View Full Version : سوال: کجا رو اشتباه نوشتم که درست کار نمیکنه



adonis27
پنج شنبه 29 فروردین 1392, 14:52 عصر
با تابع نوشتم تابع رو دیروز درس دادن ببینید درست نوشتم یا نه؟
میشه همینو به صورت void ننوشت؟
#include<iostream.h>
void tam(int x);
int main()
{
int a;
cout<<"enter number ::";
cin>>a;
tam(a);
return(0);
}
void tam(int x)
{
int i,mod,sum;
sum=0;
for(i=1;i<x;i++)
{
mod=x%i;
if(mod==x)
sum=sum+i;
i++;
}
if (sum==x)
cout<<" taam ast ! "<<"\n";
else
cout<<" taam nist ! "<<"\n";
}

MSK
پنج شنبه 29 فروردین 1392, 18:45 عصر
اصلاح شده برنامت. ببین چطوره:


#include<iostream>
using namespace std;

bool tam(int x);
int main()
{
int a;

cout << "enter number: ";
cin >> a;

if (tam(a))
cout << " taam ast!\n";
else
cout << " taam nist!\n";

return 0;
}

bool tam(int x)
{
int i, sum;

sum=1;
for (i = 2; i < x; i++)
{
if (x % i == 0)
sum += i;
}
return sum == x;
}

smemamian
پنج شنبه 29 فروردین 1392, 18:53 عصر
به این صورت هم می توانید بنویسید :

#include <iostream>
#include <cstring>
#include <string>
using namespace std;
string tam(int x);
int main()
{
int a;
cout<<"enter number ::";
cin>>a;
cout << tam(a);
return(0);
}
string tam(int x)
{
int i,mod,sum;
sum=0;
for(i=1;i<x;i++)
{
mod=x%i;
if(mod==x)
sum=sum+i;
i++;
}
if (sum==x)
return "taam ast\n" ;
else
return "taam nist\n";
}