ehsan_faal
یک شنبه 17 خرداد 1394, 13:49 عصر
سلام دوستان.
مگه شرکت پذیری عملگر درج جریان >> از چپ به راست نیست؟(توی کتاب دایتل گفته این مطلبو)
خب طبق این قانون میشه بگید توی کد زیر چرا وقتی متغیر c رو به جای i توی qDebug میاریم مقدارش بعد از محاسبه فاکتوریلش میاد؟
#include <QCoreApplication>
#include <QtDebug>
using namespace std;
int * Factorial(int*);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
for(int i=0;i<10;i++)
{
int c=i;
qDebug()<<i<<"!:"<<*Factorial(&c);
}
return a.exec();
}
int *Factorial(int* a)
{
int holder=*a;
while(holder>1)
{
(*a)*=--holder;
}
return a;
}
خروجی:
0 !: 0
1 !: 1
2 !: 2
3 !: 6
4 !: 24
5 !: 120
6 !: 720
7 !: 5040
8 !: 40320
9 !: 362880
و اینم کدی که باید درست کار کنه اما نمیکنه:
#include <QCoreApplication>
#include <QtDebug>
using namespace std;
int * Factorial(int*);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
for(int i=0;i<10;i++)
{
int c=i;
qDebug()<<c<<"!:"<<*Factorial(&c);
}
return a.exec();
}
int *Factorial(int* a)
{
int holder=*a;
while(holder>1)
{
(*a)*=--holder;
}
return a;
}
خروجی:
0 !: 0
1 !: 1
2 !: 2
6 !: 6
24 !: 24
120 !: 120
720 !: 720
5040 !: 5040
40320 !: 40320
362880 !: 362880
مگه شرکت پذیری عملگر درج جریان >> از چپ به راست نیست؟(توی کتاب دایتل گفته این مطلبو)
خب طبق این قانون میشه بگید توی کد زیر چرا وقتی متغیر c رو به جای i توی qDebug میاریم مقدارش بعد از محاسبه فاکتوریلش میاد؟
#include <QCoreApplication>
#include <QtDebug>
using namespace std;
int * Factorial(int*);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
for(int i=0;i<10;i++)
{
int c=i;
qDebug()<<i<<"!:"<<*Factorial(&c);
}
return a.exec();
}
int *Factorial(int* a)
{
int holder=*a;
while(holder>1)
{
(*a)*=--holder;
}
return a;
}
خروجی:
0 !: 0
1 !: 1
2 !: 2
3 !: 6
4 !: 24
5 !: 120
6 !: 720
7 !: 5040
8 !: 40320
9 !: 362880
و اینم کدی که باید درست کار کنه اما نمیکنه:
#include <QCoreApplication>
#include <QtDebug>
using namespace std;
int * Factorial(int*);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
for(int i=0;i<10;i++)
{
int c=i;
qDebug()<<c<<"!:"<<*Factorial(&c);
}
return a.exec();
}
int *Factorial(int* a)
{
int holder=*a;
while(holder>1)
{
(*a)*=--holder;
}
return a;
}
خروجی:
0 !: 0
1 !: 1
2 !: 2
6 !: 6
24 !: 24
120 !: 120
720 !: 720
5040 !: 5040
40320 !: 40320
362880 !: 362880