Primera corrección a simple vista de ojo sin mirar si eso va hacer lo que tiene que hacer...
EDITO: Segunda corrección:
#include
#include
using namespace std;
int main ()
{
const int MAX = 100;
typedef int vector100 [MAX]; //Definición del tipo vector de 100 elementos
vector100 primos; //Definición del vector "primos"
primos[0] = 2; // ¿El 1 no es primo?
primos[1] = 3;
int i, x;
bool c; // ¿Cuando inicializas esta variable?
for (i=2; i<=MAX; i++)
{
do
{
for (x=4; x<=(i-1); x++) // ¿porque pones x<=(i-1) y no x < i ?
{
if ( x % primos[i]!=0) // ¿Por que divides el numero solo por primos?
c=true; // ¿Cuando la vuelves a poner a false?
}
} while (c==false);
primos[i]=x;
}
for (i=0; i<=MAX-1;i++) // Lo mismo... ¿Porque no i < MAX?
{
cout << primos [i] << "\n"; // En vez de << "\n" pon << endl;
}
system ("PAUSE");
return 0;
}
Recomendación. Empieza de Cero.
Create la funcion EsPrimo(x), que devuelve true si el numero es primo y false en caso contrario.
Un numero es primo cuando solo es divisible por 1 y por el mismo.
Cuando te funcione haz un bucle desde 1 hasta 100 y le preguntas si EsPrimo(valor), y si es primo que te muestre el valor.
No te compliques tanto.
Otra recomendación, aprende a hacer trazas