Как инициализировать n так что бы оно работало для всех введенных n,а не только для 2?

В языке программирования С, чтобы инициализировать переменную n таким образом, чтобы оно работало для всех введенных значений n и не только для 2, можно использовать динамическое выделение памяти или передачу значения аргументов в функцию.

Использование динамического выделения памяти позволит программе адаптироваться для любого значения n, заданного пользователем во время выполнения. Это реализуется с помощью функций malloc() и free(). Например, можно создать массив целых чисел, в котором будет храниться значение n, используя следующий код:

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

int main() {
    int* n;

    n = (int*) malloc(sizeof(int));

    printf("Введите значение для n: ");
    scanf("%d", n);
  
    printf("Значение n: %dn", *n);

    free(n);
    
    return 0;
}

Также можно использовать передачу значения переменной в функцию, чтобы обрабатывать любое введенное значение n. В следующем примере показано, как передать значение n в функцию:

#include <stdio.h>

void printValue(int value) {
    printf("Значение n: %dn", value);
}

int main() {
    int n;

    printf("Введите значение для n: ");
    scanf("%d", &n);
  
    printValue(n);
    
    return 0;
}

В этом примере мы принимаем значение n в функции printValue() и выводим его на экран. Теперь функция будет работать для любого значения n, заданного пользователем.