Veja bem, esse código percorreu MSN alguns amigos e daí o IOSTREAM apareceu, eu tinha posto STDIO.H, estou ciente que é de C. Mas valeu o toque. Sem usar aritmética de ponteiros eu consegui também, o problema é que é OBRIGATÓRIO o uso de ponteiro e alocação dinâmica. Só usei aquele vetor pra mandar os valores pro *cpf. Se vocês tentarem colar o programa no devC da vida, irão perceber que ele compila, porém, na hora de executar: tela preta. Ou seja, tem algo no começo que está errado. EDIT: notei que o programa inteiro tem coisa trocada, devo dizer de imediato que acho que foi o próprio editor do fórum que fez isso, pois em hora nenhuma eu coloquei Cin nem Cout, o código original é este: #include<stdlib.h> #include<stdio.h> int main () { int *aux; int *cpf; int i,k,soma=0,digito1=0,digito2=0; int cpfdeclarado[11]={0,1,8,1,9,2,8,5,1,5,4}; cpf = (int*) malloc(11* sizeof(int)); aux = (int*) malloc(9* sizeof(int)); for(i=0;i<11;i++) (*(cpf+i)) = cpfdeclarado; // *cpf recebe os 11 dígitos do cpfdeclarado; k = 10; for(i=0;i<9;i++) { *(aux+i) =*(cpf+i)*k--; //*aux recebe os valores de cpf vezes K decrementando-se. soma = ( soma + (*(aux+i))); //variável soma vai incrementando os valores obtidos da operação acima } if (soma%11 < 2) //condição pro 1° digito verificador ser 0 digito1=0; else digito1 = (11 - (soma%11)); //caso não seja < 2, é 11 - o resto //segund digito soma = 0; for (i=0;i<10;i++){ *(aux+i) = *(cpf+i) * k--; //mesma coisa sendo aplicada ao segundo dígito soma = (soma+ (*(aux+i))); } if(soma%11 <2) digito2 = 0; else digito2 = ( 11- (soma%11)); //final if (digito1 == (*(cpf+9))) //verifica se o valor obtido no primeiro digito, bate com a 9 posição do CPF { if (digito2 == (*(cpf+10))) //verifica se o valor obtido do segundo dígito, bate com a décima posição do CPF printf("\nCPF válido\n"); } else printf("CPF invalido\n"); system("PAUSE"); return 0; } EDIT 2 = estou assustado! Como o código pode ter sido tão modificado?!?!?!?! EDIT 3 = UAHUAHAUHA CONFUNDI ESSE TÓPICO COM OUTRO, ESSA DÚVIDA EU TINHA NO SEMESTRE PASSADO UAUAHA