Как сделать так, чтобы мой код повторялся вместо того, чтобы заканчиваться на c ?

#c #repeat

Вопрос:

Код говорит вам, является ли это простым или нет, я перепробовал все, что мог найти, например, цикл «делай, пока» и другие, Он просто не будет работать, мой код, если кто-нибудь может помочь.

хотя, вероятно, я помещаю его не в то место, так что, если бы кто-нибудь мог вставить мой код в способ сделать это, это очень помогло бы.

 #include <iostream>
using namespace std;

int main()
{
    {
        int n, i, m = 0, flag = 0;
        cout << "(press 'x' to exit) Enter the Number to check if It's a prime Number or not: ";
        cin >> n;

        m = n / 2;
        for (i = 2; i <= m; i  ) {
            if (n % i == 0)
            {
                cout << "That's not a prime number." << endl;
                flag = 1;
                break;
            }
        }
        if (flag == 0)
            cout << "That's a prime number." << endl;
    }
}
 

Комментарии:

1. пожалуйста, покажите, что вы пробовали. Какое-то время или до-пока вы должны выполнить свою работу, но мы не можем знать, что не сработало, когда вы нам не показываете

2. Я сделал, я сказал «Как «делать в то время как цикл» и другие»

3. Предложение: вместо «Нажмите x для выхода» используйте «Введите 0 для выхода». В конце концов, никого не волнует проверка первичности 0. И это все упростит.

4. но вы не показали код. Мы хотим помочь вам с вашими конкретными деталями, с которыми у вас возникли проблемы, и это проще всего, когда вы показываете код, который не работает

Ответ №1:

Поставьте время(правда) вокруг всего. Я вижу, у тебя уже есть {} для этого:

 int main()
{
    while (true) {
        int n, i, m = 0, flag = 0;
 

Если вы сделаете это таким образом, он будет бесконечно продолжать спрашивать. Ctrl C завершит программу.

Если вы хотите, чтобы нажатие x завершило работу, что-то вроде этого сработало бы:

 int main()
{
    while (true) {
        string s;
        int n, i, m = 0, flag = 0;
        cout << "(press 'x' to exit) Enter the Number to check if It's a prime Number or not: ";
        cin >> s;

        if (s == "x")
            break;

        n = atoi( s.c_str() );

        m = n / 2;
 

Комментарии:

1. Спасибо, это сработало, однако он не показывает введенный номер после первого ввода, как это можно исправить? Редактировать: На самом деле после реализации этого, чтобы заставить x выйти, это исправлено, спасибо!

2. Я нахожусь в linux, и у меня не было этой проблемы: snipboard.io/VKJuxU.jpg

3. Теперь все хорошо, добавив x для выхода, исправил это, спасибо!