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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2013, 10:36   #1
OwnedQQ
Новичок
Джуниор
 
Регистрация: 24.05.2013
Сообщений: 2
По умолчанию Имеется код, но не хочет работать цикл

Доброе время суток. Нужно было написать программу, которая вычислит через сколько лет утроится население города, если каждый год население увеличивается на 1/40. Всё вродебы сделал, но не хочет работать цикл Кто может подсказать, как же заставить его работать?
Код:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i;
    double nach;
    double nas2;
    printf("Введите население города\n");
    scanf_s("%lf", &nach);
    nas2=nach;
    for(i=0; nach*3<nas2; i++)
    {
        nas2=nach/40+nach;
        printf("Население города через 1 год будет: %.0lf\n", nas2);
    }
return 0;
}
OwnedQQ вне форума Ответить с цитированием
Старый 24.05.2013, 10:53   #2
Laplas
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 25
По умолчанию

здесь for(){} не получится использовать.
лучше while(){} или do{}while()
Laplas вне форума Ответить с цитированием
Старый 24.05.2013, 11:38   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Laplas, Вы уверены? Даже безотносительно того, что любой (любой!) цикл можно переписать как цикл for, в данном случае for действительно подходит лучше всего.

Цитата:
Всё вродебы сделал, но не хочет работать цикл Кто может подсказать, как же заставить его работать?
1) Из цикла мы выходим, когда условие цикла оказывается ложно. В начале nas2=nach и Ваше условие сводится к nach*3<nach.
2) (Вы это и сами заметите после исправления ошибки 1) величина nach в цикле не меняется - значит, nas2 после миллионной итерации будет таким же, как и после первой. Если понимать условие как "увеличивается на 1/40 от населения, которое было изначально", то надо nas2=nas2+nach/40; или nas2 += nach/40. Если же как "увеличивается на 1/40 от текущего населения" (что логичнее), то... подумайте сами.
Abstraction вне форума Ответить с цитированием
Старый 24.05.2013, 12:01   #4
OwnedQQ
Новичок
Джуниор
 
Регистрация: 24.05.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Laplas, Вы уверены? Даже безотносительно того, что любой (любой!) цикл можно переписать как цикл for, в данном случае for действительно подходит лучше всего.

1) Из цикла мы выходим, когда условие цикла оказывается ложно. В начале nas2=nach и Ваше условие сводится к nach*3<nach.
2) (Вы это и сами заметите после исправления ошибки 1) величина nach в цикле не меняется - значит, nas2 после миллионной итерации будет таким же, как и после первой. Если понимать условие как "увеличивается на 1/40 от населения, которое было изначально", то надо nas2=nas2+nach/40; или nas2 += nach/40. Если же как "увеличивается на 1/40 от текущего населения" (что логичнее), то... подумайте сами.
Спасибо. Исправил
Если кому-то пригодится:
Код:
#include <stdio.h>
#include <windows.h>

int main()
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 double nas1,nas2;
 printf("Введите население города-\n");
 scanf_s("%lf",&nas1);
 nas2=nas1*3;
 int years=0;
  while(nas1<nas2)
  {
   years++;
   nas1=nas1/40+nas1;
   printf("Za %d год население увеличилось до %0lf\n",years,nas1);
  }
  printf("Ответ : %d let\n",years);
  system("pause");
  return 0;
}
OwnedQQ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа не хочет работать. Renc Visual C++ 1 19.02.2013 12:19
Имеется код Killall Общие вопросы Delphi 8 25.01.2013 16:16
Не хочет работать таймер gmmjob C# (си шарп) 1 05.06.2012 07:44
Снова проблема, не хочет работать код Vceznayka Microsoft Office Excel 2 16.11.2011 10:44
Не хочет работать OpenPictureDialog guffer Общие вопросы Delphi 4 08.07.2009 20:14