Выйти из внутреннего цикла, сохранив поток внешнего - C (СИ)

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

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

#include <stdio.h>
 
int main(void) {
    int number = 10;
    int count = 0;// обьявляем и инициализируем переменную/счетчик количества найденныых елементов/простых чисел
    for (int i = 2; i <= number; i++) {// цикл перебор диапазона чисел(number) начиная с 2 и заканчивая number
 
        for (int j = 2;
             j < i; j++) {// цикл нахождения остачи от числа 'i' (делим на пердыдушие кроме самого себя начиная с 2
            if (i % j == 0) {// если остача от числа 'i' найдена значит не простое --> выход из ИНТЕРАЦИИ цикла на след виток
                break;
            }
        }
        count++;// собновляем сетчик количества найденныых елементов/простых чисел
        printf("i=%d\n", i);// выводит елемент/простое число в консоль
 
    }
 
    printf("count:%d\n", count);// вывод счетчик количества найденныых елементов/простых чисел
 
}
Как в Си выйти из внутринего цикла сохранив поток внешнего(счетчик i)? в JavaScript я делаю так(через: continue):
//Вывести простые числа V1
simpleNumbers();
function simpleNumbers() {
    let number = 1e2;
    let arr = [];// обьявляем масив
    let count = 0;// обьявляем и инициализируем переменную/счетчик количества найденныых елементов/простых чисел
    console.time('Timer');// старт таймер
 
    nextPrime:// метка выхода из цыкла
        for (let i = 2; i <= number; i++) {// цикл перебор диапазона чисел(number) начиная с 2 и заканчивая number
 
            for (let j = 2; j < i; j++) {// цикл нахождения остачи от числа 'i' (делим на пердыдушие кроме самого себя начиная с 2
            if (i % j === 0) {// если остача от числа 'i' найдена значит не простое --> выход из ИНТЕРАЦИИ цикла на след виток
                continue nextPrime;// прекращает выполнение текущей итерации цикла --> управление перепрыгнет на следующую итерацию цикла с меткой.
            }
        }
 
    arr.push(i);// добавляет элемент в конец массива
    count++;// собновляем счетчик количества найденныых елементов/простых чисел
    //console.log(i); // выводит елемент/простое число в консоль
        }
 
    console.timeEnd('Timer');// стоп таймер
    console.log('Number: ' + number);// вывод числа в диапазоне которого происходит поиск
    console.log('Счетчик количества найденныых елементов/простых чисел: ' + count);// вывод счетчик количества найденныых елементов/простых чисел
    console.log('Длина масива/последний индекс + 1: ' + arr.length);// длина length – не количество элементов массива, а последний индекс + 1, так как начало отсчета в масивах '0'
    console.log('Масив:' + arr);// выводит масива селементов/простых чисел в консоль
}

Решение задачи: «Выйти из внутреннего цикла, сохранив поток внешнего»

textual
Листинг программы
//gcc 5.4.0
 
#include <stdio.h>
 
int is_prime(int n)
{
    if(n==1) return 1;
 
    for(int d=2; d*d<=n; d++)
        if(n%d==0) return 0;
 
    return 1;
}
 
int main(void) 
{
    int number = 200;
    int count = 0;
 
    for(int i=2; i<=number; i++) {
        if (is_prime(i)) {
            printf("%d\n", i);
            ++count;
   
        }
    }
    printf("count:%d\n", count);    
    return 0;
}

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

  1. Первый шаг - объявление функции is_prime, которая принимает целочисленный аргумент n и возвращает 1, если число n является простым, и 0 в противном случае.
  2. Затем идет объявление функции main, которая является точкой входа в программу. В этой функции объявляются две переменные: number (количество) и count (счетчик).
  3. Далее следует цикл for, который начинается с 2 и идет до number.
  4. Внутри цикла проверяется, является ли текущее число i простым с помощью функции is_prime.
  5. Если число простое, оно выводится на экран и счетчик count увеличивается на 1.
  6. После завершения цикла выводится значение счетчика count.
  7. В конце функции main возвращается 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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