Как из main передать int в фунцию

Как передать значения из main N в фунцию?


int prime(const int N , int argc, char argv[]) {
    int sieve[N] = { 0 }; // создаю массив размером N вставляя 0
    int a_max = 0; // вывод макс числа

    for (int i = 2; i * i < N; ++i)
        for (int k = i * i; k < N; k += i)
            sieve[k] = 1; // если не подходит, то ставится 1

    printf("Prime numbers:\n");
    for (int i = 2; i < N; ++i)
        if (sieve[i] == 0)
            printf("%d\n", a_max = i); // а второй массив пишет числа если оно равно 0 

}

int main() {
    int N;
    scanf_s("%d", &N);
    prime(N);
}



Ответы (1 шт):

Автор решения: Harry

Начните с чтения этого. Судя по отсутствию у вас знака "информированный", вы не читали даже первую страницу сайта... Чем с меньшими подробностями и большим "мне надо!" вы задаете вопрос — тем меньше шансов на нормальный ответ.

Вы опять просто пишете "программа не компилируется". Как не компилируется? Каким компилятором? Что он сообщает? Это все — не наше собачье дело?

Просто чтоб закрыть эти мучения, держите программу.

#include <stdio.h>
#include <stdlib.h>

void prime(int N)
{
    unsigned char * sieve = malloc(N+1);
    for(int i = 0; i <= N; ++i) sieve[i] = 1-i%2;
    sieve[0] = sieve[1] = 1; sieve[2] = 0;
    for (int i = 3; i * i <= N; i += 2)
        for(int k = 2*i; k <= N; k += i) sieve[k] = 1;

    printf("Prime numbers:\n");
    for (int i = 2; i <= N; ++i)
        if (sieve[i] == 0)
            printf("%d\n", i);
    free(sieve);

}

int main() {
    int N;
    scanf_s("%d", &N);
    prime(N);
}

Вот здесь — https://ideone.com/jlJCdf — ее работа, это чтоб снять очередное "у меня не получается".

→ Ссылка