Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
1

Нужно чтобы при вводе числа 0 программа завершала работу

12.01.2014, 23:28. Просмотров 804. Ответов 13
Метки нет (Все метки)

Привет всем.Это моя первая тема
У меня такая проблема,задание я сделал но вот не до конца.Нужно чтобы при вводе числа 0 программа завершала работу,я понимаю что надо использовать оператор break,но не понимаю где его тут использовать для переменной M.Подскажите пожалуйста куда подставить break ?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <conio.h>
main()
{
int j,N,M,S;
printf("Enter number M\n");
scanf("%d",&M);
N=4;
{
while(N<=M)
{ S=1;j=2;
   while(j<=N/2)
       {
if(N%j==0) S=S+j;
j=j+1;
if(M==0)break;
}
       if(N==S)
         printf("%d- perfect number\n",N);
         N=N+2;
}
getch();
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2014, 23:28
Ответы с готовыми решениями:

Нужно, чтобы программа с циклом заканчивала свое выполнение при вводе любого символа
Здравствуйте, форумчане. Нужно чтобы программа с циклом заканчивала свое...

Как сделать, чтобы при вводе 0 программа закрывалась?
#include &lt;stdio.h&gt; int main() { int num=1,i,j,height,width; char h,w; ...

Switch: при вводе дробного числа программа выдает неправильные значения
При вводе не целого числа, например 0.5 программа выдает неправильные значение...

Завершить работу программы при вводе буквы
помню ктото прогу не мог написать чтоб вводишь цивры 12345.. и как тока нажал...

При вводе абсолютно произвольного числа выводить числа в символьном виде
Нужна программа которая при вводе абсолютно произвольного числа будет выводить...

13
nikisha
39 / 35 / 23
Регистрация: 10.11.2013
Сообщений: 89
13.01.2014, 00:10 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Может лучше так
Цитата Сообщение от HON3Y Посмотреть сообщение
scanf("%d",&M);
C
1
if(M==0) return 0
просто, если у тебя М=0, то цикл не начнется, а сразу к getch() перейдет и даже если break сделаешь тоже самое получится
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
13.01.2014, 00:16  [ТС] 3
Можно как то через break сделать это?
0
nikisha
39 / 35 / 23
Регистрация: 10.11.2013
Сообщений: 89
13.01.2014, 00:18 4
break насколько я знаю только прерывает циклы, поэтому ты всеравно в getch упрешься
0
lukalexrus
7 / 6 / 2
Регистрация: 12.01.2014
Сообщений: 32
13.01.2014, 00:22 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от HON3Y Посмотреть сообщение
Можно как то через break сделать это?
Сделать то можно, но у тебя M вводится один раз. И если ты введешь M равное 0 то у тебя в цикл вайл он не зайдет.

Добавлено через 2 минуты
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <conio.h>
main()
{
int j,N,M,S;
printf("Enter number M\n");
scanf("%d",&M);
N=4;
if(M!=0)
{
while(N<=M)
{ S=1;j=2;
   while(j<=N/2)
       {
if(N%j==0) S=S+j;
j=j+1;
break;
}
       if(N==S)
         printf("%d- perfect number\n",N);
         N=N+2;
}
}
else
{
printf("равно нулю");
}
getch();
return 0;
}
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
13.01.2014, 00:25  [ТС] 6
мне просто нужно: при вводе 0 программа завершала работу..Я не знаю как этого добиться.
0
lukalexrus
7 / 6 / 2
Регистрация: 12.01.2014
Сообщений: 32
13.01.2014, 00:28 7
HON3Y, необходимо несколько раз вводить значение или только 1?
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
13.01.2014, 00:30  [ТС] 8
Цитата Сообщение от lukalexrus Посмотреть сообщение
HON3Y, необходимо несколько раз вводить значение или только 1?
1 раз
0
lukalexrus
7 / 6 / 2
Регистрация: 12.01.2014
Сообщений: 32
13.01.2014, 00:32 9
HON3Y, тогда тот вариант который я предложил является рабочим. Если введено M=0 то программа выполнена не будет и будет выполнена ветка else.
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
13.01.2014, 00:36  [ТС] 10
Цитата Сообщение от lukalexrus Посмотреть сообщение
HON3Y, тогда тот вариант который я предложил является рабочим. Если введено M=0 то программа выполнена не будет и будет выполнена ветка else.
Я понимаю но нужно же чтобы программа закрывалась,а тут она продолжает работу
0
lukalexrus
7 / 6 / 2
Регистрация: 12.01.2014
Сообщений: 32
13.01.2014, 00:40 11
Цитата Сообщение от HON3Y Посмотреть сообщение
Я понимаю но нужно же чтобы программа закрывалась,а тут она продолжает работу
тогда просто убери то что находится в else. А getch поставь в блок if (Но В данном случае нет никакой разницы гетч по сути ничего и не делает)
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
13.01.2014, 00:55  [ТС] 12
Цитата Сообщение от lukalexrus Посмотреть сообщение
тогда просто убери то что находится в else. А getch поставь в блок if (Но В данном случае нет никакой разницы гетч по сути ничего и не делает)
не совсем понял куда его поставить.

Добавлено через 3 минуты
все я все понял.Спасибо за помощь!
0
lukalexrus
7 / 6 / 2
Регистрация: 12.01.2014
Сообщений: 32
13.01.2014, 00:56 13
HON3Y, ну примерно что-то такое должно быть
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <conio.h>
int main()
{
     int j,N=4,M,S;
     printf("Enter number M\n");
     scanf("%d",&M);
     if(M!=0)
      {
         while(N<=M)
            { 
               S=1;
               j=2;
               while(j<=N/2)
                  {
                      if(N%j==0) S=S+j;//эта сумма будет если равно условие
                      j=j+1;//эта каждый раз в цикле
                  }
               if(N==S)
                  { 
                     printf("%d- perfect number\n",N);
                     N=N+2;
                    }
              }
   getch();
}
return 0;
}
ну вот примерно так, выровнял то как это выглядит поблокам
0
alkagolik
Заблокирован
13.01.2014, 01:54 14
HON3Y, у тебя нарушена логика программы и оператор break здесь не виноват.
0
13.01.2014, 01:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 01:54

Программа зацикливается при вводе матрицы
Здравствуйте. Помогите, в программе какая то ошибка, не могу найти. Почему-то...

Программа вылетает при вводе значений
вроде прохожу си второй год и проги писал гораздо сложней, а тут реально...

Программа падает при вводе стажа
помогите доделать программа запускается. но потом что-то слетает при вводе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru