C++ return değeri hakkında

Faezsmyd

Yeni üye
21 Ağu 2017
17
0
Konsolda bi sayı tahmin oyunu yapıyordum da
Kod:
  bool magicTrick::show() {
    cout << "~~~~~~~~~~~~~~~~~~~~~~~~\n";
    for(unsigned i = 0;i < temp.size();i++)  {
        cout << temp[i] << ' ';
    }
    cout << "\ndid you see your number here?\n";
    char answer;
    cin >> answer;
    return ( (answer == 'y') | (answer == 'Y') ) ? ({temp = randomize(); show();}) : false;
}

Bu koddaki return değeri legal mi program çalışıyor ama daha önce bu şekilde bi kod görmemiştim o yüzden merak ettim
(Kod istediğim şeyi yapıyor fakat rastgele birşeyler denerken farkettim)

Kodun tamamı burada.
Kod:
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;

class magicTrick    {
public:
    vector<int> nums;
    vector<int> temp;
    magicTrick();
    vector<int> randomize();
    bool show();
    
};

bool magicTrick::show() {
    cout << "~~~~~~~~~~~~~~~~~~~~~~~~\n";
    for(unsigned i = 0;i < temp.size();i++)  {
        cout << temp[i] << ' ';
    }
    cout << "\ndid you see your number here?\n";
    char answer;
    cin >> answer;
    return ( (answer == 'y') | (answer == 'Y') ) ? ({temp = randomize(); show();}) : false;
}

vector<int> magicTrick::randomize()    {
    vector<int> temp;
    while(temp.size() != 9)    {
        int numsRand = rand() % nums.size();
        if(count(temp.begin(), temp.end(), nums[numsRand]) == 0)    {
            temp.push_back(nums[numsRand]);
            }        
    }    
    return temp;
}

magicTrick::magicTrick()    {
    srand(time(0));
    for(int i = 1;i < 31; i++)
        nums.push_back(i);
        temp = randomize();
    cout << show();
    
    
}

int main() {
magicTrick magicT;
    return 0;
}
 
Son düzenleme:

xdebron

Kıdemli Üye
29 Ocak 2015
2,441
1
.
Konsolda bi sayı tahmin oyunu yapıyordum da
Kod:
  bool magicTrick::show() {
    cout << "~~~~~~~~~~~~~~~~~~~~~~~~\n";
    for(unsigned i = 0;i < temp.size();i++)  {
        cout << temp[i] << ' ';
    }
    cout << "\ndid you see your number here?\n";
    char answer;
    cin >> answer;
    return ( (answer == 'y') | (answer == 'Y') ) ? ({temp = randomize(); show();}) : false;
}

Bu koddaki return değeri legal mi program çalışıyor ama daha önce bu şekilde bi kod görmemiştim o yüzden merak ettim
(Kod istediğim şeyi yapıyor fakat rastgele birşeyler denerken farkettim)

Kodun tamamı burada.
Kod:
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;

class magicTrick    {
public:
    vector<int> nums;
    vector<int> temp;
    magicTrick();
    vector<int> randomize();
    bool show();
    
};

bool magicTrick::show() {
    cout << "~~~~~~~~~~~~~~~~~~~~~~~~\n";
    for(unsigned i = 0;i < temp.size();i++)  {
        cout << temp[i] << ' ';
    }
    cout << "\ndid you see your number here?\n";
    char answer;
    cin >> answer;
    return ( (answer == 'y') | (answer == 'Y') ) ? ({temp = randomize(); show();}) : false;
}

vector<int> magicTrick::randomize()    {
    vector<int> temp;
    while(temp.size() != 9)    {
        int numsRand = rand() % nums.size();
        if(count(temp.begin(), temp.end(), nums[numsRand]) == 0)    {
            temp.push_back(nums[numsRand]);
            }        
    }    
    return temp;
}

magicTrick::magicTrick()    {
    srand(time(0));
    for(int i = 1;i < 31; i++)
        nums.push_back(i);
        temp = randomize();
    cout << show();
    
    
}

int main() {
magicTrick magicT;
    return 0;
}

Kod:
return bool?x:y;
demek
Kod:
if(bool)
{
return x;
}
else
{
return y;
}
demektir.

Kod:
({temp = randomize(); show();})
Kısmına gelecek olursak bu da

Kod:
temp = randomize();
return show();

demek. o halde adamımız tam da şunu demek istemiş.

Kod:
if((answer == 'y') | (answer == 'Y'))
{
temp = randomize();
return show();
}
else
{
return false;
}
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.