Как из 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 — ее работа, это чтоб снять очередное "у меня не получается".