Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2008, 14:31   #1
CESHNIK
 
Регистрация: 19.02.2008
Сообщений: 5
По умолчанию Помогите с программой(light saper)

Извиняюсь,что вопрос не общий
Нужно разобраться с программой.Эта программа должна случайно распределять "мины" на "участки".Участки-переменные массива m[20] (20 участков),где "ЕСТЬ мина"M[]=1;"Нет мины"M[]=0
Вот код моей программы,но всё время выдаёт ошибки.


Код:
#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

int MINES,i,m,t,l,YM,v,p;

int main()
{
i=0;
while(i=0)
{
cout<<"How many mines do you want?"<<endl;
cin>>MINES>>endl;
if(MINES=>20)
{
i=1;
else i=0;
}
}
int m[20];
for(l=0;l<19;l++)
{
if(MINES>0)
{
YM=1;
else YM=0;
}
srand( (unsigned)time( NULL ) );
t=rand() % 1;
if(t=1)
{
m[l]=YM;
else m[l]=0;
}
MINES=MINES-1;
}
for(v=0;v<19;v++)
{
cout<<m[v]<<endl;
}
cin>>p>>endl;
}

Что там неправильного,помогите,пожалуйста.

Последний раз редактировалось merax; 20.02.2008 в 15:17.
CESHNIK вне форума Ответить с цитированием
Старый 19.02.2008, 14:42   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
но всё время выдаёт ошибки.
Ну так ведь помимо этого еще и объясняет, что за ошибки.
Сходу:
Код:
if(MINES=>20)
Что "=>" за оператор такой? ( >= )
Код:
if(MINES=>20)
{
i=1;
else i=0;
}
}
Со скобками разберитесь (и дальше по тексту тоже такие "конструкции"
Подразумевалось, видимо
Код:
if(MINES >= 20)
{
	i=1;
}
else {
	i=0;
}
?
Или проще:
Код:
if(MINES >= 20) i=1; else i=0;
.
B_N вне форума Ответить с цитированием
Старый 19.02.2008, 21:16   #3
CESHNIK
 
Регистрация: 19.02.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Ну так ведь помимо этого еще и объясняет, что за ошибки.
Сходу:
Код:
if(MINES=>20)
Что "=>" за оператор такой? ( >= )
Код:
if(MINES=>20)
{
i=1;
else i=0;
}
}
Со скобками разберитесь (и дальше по тексту тоже такие "конструкции"
Подразумевалось, видимо
Код:
if(MINES >= 20)
{
	i=1;
}
else {
	i=0;
}
?
Или проще:
Код:
if(MINES >= 20) i=1; else i=0;
.
Спасибо.Разобрался.Знал бы как повысить репутацию.+
CESHNIK вне форума Ответить с цитированием
Старый 20.02.2008, 23:25   #4
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Строка 32: t=rand()%1;

Любое число делится на еденицу нацело. Т.е. после этого выражения переменная t будет равна 0 вне зависимости от числа, возвращаемого функцией rand().

Строка 33: if(t=1){

Возможно if(t==1){?

Строка 13: while(i=0)

Возможно while(i==0)?

Строка 24: for(l=0;l<19;l++)

Чтобы перебрать все значения массива m нужно написать

for(l=0;l<20;l++)
или
for(l=0;l<=19;l++)

Последний раз редактировалось merax; 21.02.2008 в 06:33.
alexx777 вне форума Ответить с цитированием
Старый 22.02.2008, 13:51   #5
CESHNIK
 
Регистрация: 19.02.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от alexx777 Посмотреть сообщение
Строка 32: t=rand()%1;

Любое число делится на еденицу нацело. Т.е. после этого выражения переменная t будет равна 0 вне зависимости от числа, возвращаемого функцией rand().

Строка 33: if(t=1){

Возможно if(t==1){?

Строка 13: while(i=0)

Возможно while(i==0)?

Строка 24: for(l=0;l<19;l++)

Чтобы перебрать все значения массива m нужно написать

for(l=0;l<20;l++)
или
for(l=0;l<=19;l++)
СПАСИБО БОЛЬШОЕ.+
Вот только я не совсем понял что делать с rand() % 1

Последний раз редактировалось CESHNIK; 22.02.2008 в 13:54.
CESHNIK вне форума Ответить с цитированием
Старый 22.02.2008, 15:01   #6
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Используй конструкцию

int t = rand()%n;

где n показывает, сколько разных значений будет принимать t. Если тебе нужно сгенерировать 0 или 1 (то есть два значения), пиши:

int t = rand()%2;

И вообще

int t = rand()%n;

значит, что t будет принимать значения от нуля включительно до n исключительно.

Последний раз редактировалось alexx777; 22.02.2008 в 15:06.
alexx777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с программой! MAKEDON Общие вопросы Delphi 3 27.12.2007 13:46
помогите с программой LexusSPb Фриланс 2 04.09.2007 16:29