Организовать повтор ввода при нажатии Enter - C (СИ)

Узнай цену своей работы

Формулировка задачи:

такой вот у меня вопрос: как сделать, чтоб после нажатия enter выполнение моей программы не закрывалось сразу, а выполнялось заново? вот пример проги
#include<iostream>
#include<stdio.h>
#include<conio.h>
 
int main()
{
    setlocale (LC_ALL,"rus");
    
    int n,a;
    int c=0;
    char ch;
    
    printf("введите число ");
    scanf("%d", &n);
    
    a=n/2;
    int countn=0;
    int counta=0;
 
    while(n>0){
        n/=10;
        ++countn;}
 
    while(a>0){
        a/=10;
        ++counta;}
 
    if(countn==counta)
        printf("не изменилось"); 
    else printf("изменилось");
            
getch();
return 0;   
}
т.е. вылазиет строка "введите число", до тех пор, пока я не нажму, к примеру пробел...

Решение задачи: «Организовать повтор ввода при нажатии Enter»

textual
Листинг программы
#include<iostream>
#include<stdio.h>
#include<conio.h>
 
int main()
{
    char c;
    setlocale (LC_ALL,"rus");
    do
    {
         system("cls");       
                int n,a;
                int c=0;
                char ch;
        
                printf("введите число ");
                scanf("%d", &n);
        
                a=n/2;
                int countn=0;
                int counta=0;
 
                while(n>0) {
                     n/=10;
                     ++countn;}
 
                while(a>0){
                     a/=10;
                     ++counta;}
 
                if(countn == counta)
        printf("не изменилось\n"); 
                else 
        printf("изменилось\n");
         printf("Для повтора нажмите пробел");
    } while( ( c = getch() ) == ' ' );                
    getch();
    return 0;       
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Устанавливается локаль на русский язык
  3. Задаются переменные c, n, a, ch, countn, counta
  4. Выводится приглашение для ввода числа
  5. Происходит считывание введенного числа в переменную n с помощью функции scanf
  6. Вычисляется значение a как половина от n
  7. Инициализируются переменные countn и counta единицей
  8. В цикле while происходит деление n на 10 и увеличение countn на единицу до тех пор, пока n больше нуля
  9. В цикле while происходит деление a на 10 и увеличение counta на единицу до тех пор, пока a больше нуля
  10. Проверяется равенство countn и counta
  11. Выводится соответствующее сообщение о равенстве или изменении числа
  12. Выводится приглашение для повторного ввода, при этом вводится условие для цикла do-while
  13. В условии цикла do-while происходит считывание символа c с помощью функции getch
  14. Если c равен пробелу, то происходит повтор цикла, иначе цикл завершается
  15. Происходит считывание символа c с помощью функции getch
  16. Цикл завершается, и программа возвращает 0, указывая на успешное выполнение

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы