mmm l'aver messo 11 è ok (avevo messo 10 come numero casuale, non ho contato le cifre di una data)
Inoltre hai dimenticato di convertire l'int in char alla fine (che alla fine può essere evitato sapendo il formattatore per stampare un intero )
Il codice completo quindi è

codice:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <windows.h> //solo sotto windows, ci servono le API per inserire la pa
char data1[11]; //servono al massimo 11 caratteri per una data (10 effettivi + il NULL)
char data2[11];

int main()
{
	int x; //in C la dichiarazione di tutte le variabili va all'inizio
	int i;
	srand(time(0));
	printf("Inserire la data di inizio\n");
	scanf("%10s",data1); //usiamo direttamente le due variabili dichiarate a livello di file (il formattatore delle stringhe è %s, non %d, inserendoci un 10 in mezzo dico alla scanf di non acquisire più di 10 caratteri per evitare buffer overflow)
	printf("Inserire la data finale\n");
	scanf("%10s",data2);
	//Calcoli strani
	i = 0+1+2+5+4+12+432+543+5+43/14321/32113*210983-rand()+time(0); //un tocco di insensatezza in più 
	//Fine calcoli strani
	x = rand() % 600;
	if (x < 500)
		x += (500 - i + rand() % x);
        char *conv = itoa(x,(char*)malloc(3),0);
	printf("Dal periodo %s al periodo %s sono state fatte N. %s operazioni",data1,data2,conv);
	system("pause");
        free(conv);
	return 0;
}