PDA

View Full Version : عیب یابی کد



farid_mov2006
جمعه 02 مهر 1389, 11:10 صبح
سلام دوستان
من یکی از مثالهای کتاب دیتل را توی ویژوال استودیو وارد کردم اما 12تا ارور داد:متعجب: /تونستم 6تاشو درست کنم اما 6تا دیگش نشد:عصبانی++:
لطفا دوستان راهنمای کنید تا مشکل این کد حل بشه
مثال صفحه 283 دیتل{بازی شانسی هستش}
و اما کد:

#include "stdafx.h"
#include<iostream>
using namespace std;
#include<cstdlib>
using std::random_access_iterator_tag;
using std::srand;
#include<ctime>
using std::time;
int rollDice();
int main()
{
enum Status{CONTINUE,WON,LOST}
int mypoint ;
Status gameStatus;
srand(time_t(0));
int sumofDice=rollDice();
switch(sumofDice)
{
case 7:
case 11:
gameStatus=WON;
break;
case 2:
case 3:
case 12:
gameStatus=LOST;
break;
default:
gameStatus=CONTINUE;
mypoint=sumofDice;
cout<<"point is"<<mypoint<<endl;
break;
}
while( gameStatus==CONTINUE )
{
sumofDice=rollDice();
if(sumofDice==mypoint)
gameStatus=WON;
esle
if (sumofDice==7)
gameStatus=LOST;
}
if (gameStatus==WON)
cout<<"player wins"<<endl;
esle
cout<<"player loses"<<endl;
return 0;
}
int rollDice()
{
int die1=1+rand()%6;
int die2=1+rand()%6;
int sum =die1+die2;
cout<<"player rolled"<<die1<<"+"<<die2<<"="<<sum<<endl;
return sum;
}

BeginnerProgrammer
جمعه 02 مهر 1389, 21:15 عصر
کد زیر خطا نمیده


//#include "stdafx.h"
#include<iostream>
using namespace std;
#include<cstdlib>
using std::random_access_iterator_tag;
using std::srand;
#include<ctime>
using std::time;
int rollDice();
int main()
{
enum Status{CONTINUE,WON,LOST};
int mypoint ;
Status gameStatus;
srand(time_t(0));
int sumofDice=rollDice();
switch(sumofDice)
{
case 7:
case 11:
gameStatus=WON;
break;
case 2:
case 3:
case 12:
gameStatus=LOST;
break;
default:
gameStatus=CONTINUE;
mypoint=sumofDice;
cout<<"point is"<<mypoint<<endl;
break;
}
while( gameStatus==CONTINUE )
{
sumofDice=rollDice();
if(sumofDice==mypoint)
gameStatus=WON;
else
if (sumofDice==7)
gameStatus=LOST;
}
if (gameStatus==WON)
cout<<"player wins"<<endl;
else
cout<<"player loses"<<endl;
return 0;
}
int rollDice()
{
int die1=1+rand()%6;
int die2=1+rand()%6;
int sum =die1+die2;
cout<<"player rolled"<<die1<<"+"<<die2<<"="<<sum<<endl;
return sum;
}

drstrike
شنبه 03 مهر 1389, 00:13 صبح
[QUOTE] من یکی از مثالهای کتاب دیتل را توی ویژوال استودیو وارد کردم [QUOTE]

منم همین کارو کردوم ولی جواب داد! (vS 2008)
به جای هدر stdafx.h، هدر conio.h رو فراخوانی کن. قبل return 0 هم getch() بزار

farid_mov2006
شنبه 03 مهر 1389, 11:12 صبح
سلام
دوست عزیز این هدر stdafx.h که حتما باید باشه
راستی BeginnerProgrammer دوست عزیز اول کدت // گذاشتی که اونو برداری جواب میده
اما یه مشکل دیگه هم هست بعد هر بار اجرا یه جواب میده در صورتی که توی کتاب چنتا جواب میده
در ضمن من هر چی کد شما رو نگاه کردم تغییری با کد من نمیکرد؟مبشه بفرمایید کجا را اصلاح کردید؟

BeginnerProgrammer
چهارشنبه 28 مهر 1389, 16:08 عصر
سلام
ببخشید برای پاسخ دادن خیلی دیر شده.:ناراحت:
شما به جای else نوشته بودید esle. در مورد هدر فایل stdafx.h هم چون این فایلو نداشتم کامنت کردم.
کد قبل از ویرایشو بذارید شاید این مشکلی رو که میگین بشه رفع کرد.