Estoy haciendo una tarea de C++ que tengo para la facultad y estoy trabado en una boludes ¬¬.

Es algo bastante simple pero todavia me estoy acostumbrando a la sintaxis de C++ (el año pasado vimos todo Java) y me debo estar equivocando en algo basico. La idea del programa es que te imprima los N primeros elementos de la serie de Fibonacci y ademas la division entre el elemento N y el N+1 pero eso ultimo todavia no lo hice.

Cuando lo trato de ejecutar me tira error en la linea que marque abajo, ¿alguna idea de que puedo estar haciendom mal?.


Y ya que estamos les hago una pregunta de concepto. ¿cual es la diferencia entre un subprograma y una funcion? ¿como se define cada una?.



Gracias!.

Código:
// TP1 - Fibonacci.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "conio.h"


void calcularFibonacci(int unaCantidad);
void imprimir(int unNumero);


int leerN() {
	int N = 0; 
	printf("\n Ingrese la cantidad de elementos de la serie que desea obtener: ");
	scanf("%N", &N);
	return N;
}



void main(void) {
	int unaCantidad = leerN();
	printf("Los primeros %i elementos de Fibonacci son: ", unaCantidad);
	calcularFibonacciHasta(unaCantidad);
	getch();
}


void calcularFibonacciHasta(int unaCantidad) {
	int i;
	int anterior1 = 1;
	int anterior2 = 0;
	int actual; 

	for (i = 1; i <= unaCantidad; i++) {
		if (unaCantidad == 1) {
			printf("La serie de Fibonacci con %n elemento/s es 0", unaCantidad);
		}

		if (unaCantidad == 2) {
			printf(" 1");
		}

		else {
			actual = anterior2 + anterior1;
			anterior2 = anterior1;
			anterior1 = actual;
			imprimir(actual);
		}

	}

}


void imprimir(int i) {
	printf(" %i", i);
}