Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 3
1

Завершение бесконечного цикла по нажатию CTRL + D

25.10.2017, 00:36. Показов 2696. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется программа, которая должна брать вводимые числа из массива и выводить всё описанное. Работает для i = 5 но по задаче количество элементов не даётся. Как принудительно завершить цикл, например, при i = 10000? Как подсказку дают то, что цикл можно завершить, нажав CTRL + D. Но как это написать в цикле я не знаю. Массив использовать не обязательно, можно ли как то обойтись вообще без него, сразу же выводя числа?

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
int main(void)
{
    
    int massiv[1000];
    int cisla[1000];
    int i = 1;
    float kolvo_cisel = 0;
    float kolvo_kladnych = 0;
    float kolvo_otricatelnych = 0;
    float procent_polozitelnych = 0;
    float procent_otricatelnych = 0;
    int kolvo_cetnych = 0;
    int kolvo_necetnych = 0;
    float kolvo_cetnych_float;
    float kolvo_necetnych_float;
    float procent_cetnych = 0;
    float procent_necetnych = 0;
    float srednee = 0;
    int sum = 0;
    float sum_float = 0;
    int v = 0;
    int maximum;
    int minimum;
    for (i = 1; i <= 1000; ++i){
        massiv[i] = i;
}
    for (i = 1;i <= 5;++i){
        massiv[i] = scanf("%d",&cisla[i]);
        kolvo_cisel += 1;
    }
 
    for (i = 1; i <= kolvo_cisel; ++i){
        maximum = cisla[1];
        minimum = cisla[1];
        sum = sum + cisla[i];
        if (cisla[i] > 0){
            kolvo_kladnych += 1;
        }
        v = cisla[i] % 2;
        if (v == 0){
            kolvo_cetnych += 1;
        }
        else {
            kolvo_necetnych += 1;
        }
    }
    for (i = 1; i <= kolvo_cisel; ++i){
        if (maximum < cisla[i]){
        maximum = cisla[i];
        }
        if (minimum  > cisla[i]){
        minimum = cisla[i];
        }
    }
    kolvo_otricatelnych = kolvo_cisel - kolvo_kladnych;
    procent_polozitelnych = (kolvo_kladnych /  kolvo_cisel) * 100;
    procent_otricatelnych = (kolvo_otricatelnych / kolvo_cisel) * 100;
    kolvo_cetnych_float = kolvo_cetnych;
    kolvo_necetnych_float = kolvo_necetnych;
    procent_cetnych = (kolvo_cetnych_float / kolvo_cisel) * 100;
    procent_necetnych = (kolvo_necetnych_float / kolvo_cisel) * 100;
    sum_float = sum;
    srednee = sum_float / kolvo_cisel ;
    printf("\nKolicestvo cisel: %.0f", kolvo_cisel);
    printf("\nKolicestvo polozitelnyh: %.0f", kolvo_kladnych);
    printf("\nKolicestvo otricatelnych: %.0f", kolvo_otricatelnych);
    printf("\nProcent polozitelnyh: %.2f", procent_polozitelnych);
    printf("\nProcent otricatelnych: %.2f", procent_otricatelnych);
    printf("\nKolicestvo cetnych: %d", kolvo_cetnych);
    printf("\nKolicestvo necetnych: %d", kolvo_necetnych);
    printf("\nProcent cetnych: %.2f", procent_cetnych);
    printf("\nProcent necetnych: %.2f", procent_necetnych);
    printf("\nSrednee znacenie: %.2f", srednee);
    printf("\nMaximum: %d", maximum);
    printf("\nMinimum: %d", minimum);
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2017, 00:36
Ответы с готовыми решениями:

Завершение бесконечного цикла через определенное время
Есть бесконечный цикл for( ; ; ), который обрабатывает событие нажатия кнопки в игре. Если на...

Завершение цикла по нажатию кнопки
Добрый вечер. Хочу сделать, чтобы завершение цикла происходило по действию кнопки( любой). Пусть...

Выход из бесконечного цикла по нажатию кнопки
Всем привет! Я недавно прочитал статью на хабре про игры 30 байт, так вот, там было несколько игр,...

Выход из бесконечного цикла по нажатию клавиши
как выйти из бесконечного цикла по нажатию клавиши? begin: ..... jmp begin 8h ждет нажатия...

1
3882 / 2480 / 418
Регистрация: 09.09.2017
Сообщений: 10,893
25.10.2017, 10:09 2
ctrl+D это символ EOF.
Например, можно проверять scanf(...)==0 или feof(stdin)
0
25.10.2017, 10:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2017, 10:09
Помогаю со студенческими работами здесь

Выход из бесконечного цикла по нажатию кнопки.
Привет всем. как можно выйти из такого цикла по нажатию какой любой кнопки (например Esc) int...

Завершение цикла и его возобновление по нажатию кнопки
Добрый день. Нужна ваша помощь Нужно запустить бесконечный цикл repeat ... until false; , но по...

Выход из бесконечного цикла по нажатию любой кнопки
Молод и глуп, яндексы и гуглы облазил, а решение проблемы не нашлось. В чем суть: нужно, чтобы...

Старый борланд: как выйти из бесконечного цикла по нажатию заданной клавиши?
Короче нужно сделать прогу которая считает сколько отрицательных,положительных,равных 0 ввел...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru