• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с программой на C++ при помощи операторов while, do while, for

sypermot

Ученик
Регистрация
10 Окт 2011
Сообщения
11
Реакции
0
Баллы
0
Помогите с программой на C++ при помощи операторов while, do while, for

Здравствуйте. помогите пожалуйста написать программу на с++ для вычисления (a-1)*(a-2).......(a-b) ; a и b должны пренадлежать целым положительным числам. нужно использовать операторы while, do while, for. Заранее огромное спасибо=)
 
Ну и чего? Сами пробовали решать? Это же простейшее задание.
 
нет я с++ только с первого сентября изучаю и незнаю как правильно сделать знаю схему рработы этих циклов, но незнаю как правильно написать это на языке с++
 
Я тоже С++ изучаю только с первого сентября.
Подсказка:

for (i=1; i<=b;i++)
 
ну и я всеже я этого незнаю, помоги пожалуйста=)
 
Код:
#include <stdio.h>
#include <conio.h>


int main()
 {
  int i,b,a,s;
  printf("\n VVEDITE CELIE A>0 I B>0 \n");
  scanf("%d%d",&a,&b);
  s=1;
  for (i=1; i<=b; i++)       
    s*=(a-i);
  printf("\n otvet: %d",s); 
  getch();
  return 0;
 }

Вот как-то так.
 
спасибо огромное, а что значит i++
 
i++ эквивалентно i+=1 эквивалентно i=i+1
Увеличение \приращение\инкремент\\ значения i на 1
 
понятно, а можешь проверить еще с while и do while, щас напишу прогараммы
 
s=1
while (i<=b)
{i++; S=*(a-i)
printf("\n otvet: %d",s);}



ну а все остальное также, правильно?
 
а с od while так

do{ s=1 i++
s=*(a-i)
} while i<=b;
printf("\n otvet: %d",s);}
 
Не совсем...

Код:
s=1;
[COLOR="Red"]i=1;[/COLOR]
while (i<=b)
{
[COLOR="Red"] s*=[/COLOR](a-i);
[COLOR="Red"] i++;[/COLOR]
}

printf("\n otvet: %d",s);

Переменной i надо присвоить значение 1 еще до начала цикла. Иначе i почитается из той ячейки памяти, где ее расположит программа, а там может храниться черт знает что.
Дальше... Следите за тем, чтобы переменная если объявлена маленькой буквой, то везде она писалась маленькой буквой (C чевствителен к регистру.
i увеличивать на один надо после ее использования, а не до.
Вывод ответа нужно вынести из цикла, иначе он будет выводиться с каждым шагом цикла.
Ну и на конец "*=", а не "=*"
 
понял=) спасибо=) вообще выручил
 
do while будет так:
Код:
s=1;
i=1;
do
{
 s*=(a-i);
 i++;
}
while (i<=b);

Первоначальные значения переменных надо объявлять до цикла или же при их объявлении:
Код:
int s=1, i=1;
 
и еще раз спасибо=)
 
Назад
Сверху