主题:珠玑妙算怎么搞都搞不对啊.... 主要是不怎么怎么用一个函数返回一个char*
//
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
char* ScoreGuess(char* buffer1, char guess[4],char secretCode[4]);
int black=0;
int white=0;
int main(int argc, _TCHAR* argv[])
{ char guess[4];
char results[4];
char pool[6]={'a','b','c','d','e','f'};
char* buffer1;
buffer1= '\0';
int iSecret, iGuess;
/* initialize random seed: */
srand ( time(NULL) );
for (int i=0; i<4; i++)
{ iSecret = rand() % 6; /* generate secret number: */
results[i]=pool[iSecret];
cout<<results[i];
}
while (black!=4)
//calc blacks
{
char* outcome= ScoreGuess(buffer1,guess,results);
cout << "The result is --> " << outcome;
cout << "\n\nPress ENTER to continue..." << endl;
}
free (buffer1);
system("pause");
return 0;
}
char* ScoreGuess(char* buffer1,char guess[4],char results[4])
{
black=0;
for (int i=0; i<4; i++)
{
cout<<"enter "<< i << " Numbers Here:"<<endl; /* input guess: */
cin>>guess[i];
}
for (int i=0; i<4; i++)
{
if (guess[i]==results[i])
black++;
}
cout<<"black="<<black;
// calc whites
white=0;
for (int i=0; i<4; i++)
{ bool maskallocated=0;
for (int j=0; j<4; j++)
{
if (guess[i]==results[j] && i!=j && guess[i]!=results[i] && guess[j]!=results[j] && !maskallocated)
{white++;
maskallocated=1;}
}
}
cout<<"white="<<white;
buffer1 = '\0';
for (int i=0;i<4;i++)
{
if (black!=0)
{
black--;
buffer1[i]='w';
}
else if (white!=0)
{
white--;
buffer1[i]='w';
}
else
buffer1[i]='e';
}
return buffer1;
}