gente eu tenho um trabalho para fazer que divide se em 2 parte eu já fiz boa parte do trabalho mas eu não consigo termina -lo e ele é para amanha e vale metade da nota por favor me ajudem
 
	Primeira metade: Deve ser criado um algoritmo que leia um CPF e armazene em uma variável do tipo cadeia. Em seguida, um teste deve ser feito para verificar se o que foi lido é um CPF em formato válido. Os formatos válidos são:  Três números, um ponto, três números, um ponto, três números, um traço, dois números (xxx.xxx.xxx-xx);  Apenas números. Sendo assim, um CPF 111.222.333-45 está no formato válido, assim como 11122233345 também está. Segunda metade: Após o teste do formato, deverá ser verificado se o CPF lido é de fato um CPF válido ou não. Para isso, o algoritmo de verificação especificado na página seguinte deverá ser implementado. A resposta final do algoritmo deve ser: i. Que o CPF está no formato correto e também é válido de acordo com o DV. ii. Que o CPF está no formato correto, mas é inválido de acordo com o DV. iii. Que o CPF não está no formato correto.
 
	Método de Validação
 
	No CPF (primeiros 9 digitos), o primeiro DV (penúltimo digito) é obtido através do somatório da multiplicação de cada digito do CPF por respectivamente 9, 8, 7, 6, 5, 4, 3, 2, 1 a partir da unidade. Do resultado desta soma é obtido o resto da divisão por 11 e este será o primeiro DV. Caso o resto seja 10, o DV será 0. Por exemplo, no CPF 111.222.333-__, o primeiro DV será calculado da seguinte forma: 1 1 1 2 2 2 3 3 3 (CPF) x x x x x x x x x 1 2 3 4 5 6 7 8 9 (Multiplicadores) 1 +2 +3 +8 +10+12+21+24+27 = 108 (Somatório das multiplicações) 108/11 = 9 com resto 9 (Divisão por 11) Sendo assim, 9 (resto da divisão) é o primeiro DV. Portanto, já fica claro que o CPF 111.222.333-45 é INVÁLIDO, pois o primeiro DV informado foi 4, e através do cálculo vimos que deveria ser 9. O segundo DV (último digito) é calculado de maneira similar. É feito o somatório da multiplicação de cada digito do CPF mais o primeiro DV (obtido anteriormente) por respectivamente 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 a partir da unidade. Do resultado também é pego o resto da divisão por 11. Por exemplo, no CPF 111.222.333-9_, o segundo DV será calculado da seguinte forma: 1 1 1 2 2 2 3 3 3 9 (CPF + primeiro DV) x x x x x x x x x x 0 1 2 3 4 5 6 7 8 9 (Multiplicadores) 0 +1 +2 +6 +8 +10+18+21+24+81 = 171 (Somatório das multiplicações) 171/11 = 15 com resto 6 (Divisão por 11) Sendo assim, 6 é o segundo DV. Por isso, a única forma do CPF 111.222.333 ser válido é se os dois dígitos DV forem 96. O CPF informado é inválido, já que os DVs informados foram 45.
 
	#include <stdio.h> 
	#include <stdlib.h> 
	#include <locale.h>
 
	int main (){ 
	     
	    setlocale(LC_ALL, ""); 
	    char cpf[15]; 
	    int v1, v2, dv1, dv2, temp1, temp2; 
	    int tam=0; 
	    int i, x; 
	    printf("%s, digite seu cpf: "); 
	    fflush(stdin); 
	    scanf("%s", &cpf);
 
	    for(i = 0; i< 15; i++){ 
	        if(cpf == '\0'){ 
	            tam = i; 
	        }     
	    } 
	    if(tam == 11){ 
	        printf("CPF está no formato correto"); 
	        v1 = cpf[9]; 
	        v2 = cpf[10]; 
	            temp1 = (cpf[0] * 1) + (cpf[1] * 2 ) + (cpf[2] * 3) + (cpf[3] * 4) + (cpf[4] * 5) + (cpf[5] * 6) + (cpf[6] * 7) + (cpf[7] * 8) + (cpf[8] * 9); 
	            dv1 = temp1 % 11; 
	        if (dv1 == 0){ 
	            dv1= 0; 
	        } 
	            cpf[9] = '\0'; 
	            cpf[9] = dv1;     
	         
	            temp1 = (cpf[0] * 0) + (cpf[1] * 1) + (cpf[2] * 2) + (cpf[3] * 3) + (cpf[4] * 4) + (cpf[5] * 5) + (cpf[6] * 6) + (cpf[7] * 7) + (cpf[8] * 8) + (cpf[9] * 9); 
	            dv2 = temp2 % 11;         
	            if(v1 == cpf[9] && v2 == cpf[10]){ 
	        } 
	        else{ 
	            printf("CPF NÃO está de acordo com os DV's"); 
	        } 
	    } 
	    else if(tam == 14){ 
	        if(cpf[3] == '.' && cpf[7] == '.' && cpf[11] == '-'){ 
	            cpf[3] = '\0'; 
	            cpf[7] = '\0'; 
	            cpf[11] = '\0'; 
	             
	            cpf[3] = cpf[4];     
	            cpf[4] = cpf[5]; 
	            cpf[5] = cpf[6]; 
	            cpf[6] = cpf[7]; 
	            cpf[8] = cpf[9]; 
	            cpf[9] = cpf[10]; 
	            cpf[11] = cpf[12]; 
	        }  
	        for(x = 0; x < 15; x++){ 
	            if(cpf[x] == 0 || cpf[x] == 1 || cpf[x] == 2 || cpf[x] == 3 || cpf[x] == 4 || cpf[x] == 5 || cpf[x] == 6 || cpf[x] == 7 || cpf[x] == 8 || cpf[x] == 9){ 
	                temp1 = (cpf[0] * 1) + (cpf[1] * 2 ) + (cpf[2] * 3) + (cpf[3] * 4) + (cpf[4] * 5) + (cpf[5] * 6) + (cpf[6] * 7) + (cpf[7] * 8) + (cpf[8] * 9); 
	                dv1 = temp1 % 11; 
	                if (dv1 == 0){ 
	                dv1= 0; 
	                } 
	                cpf[9] = '\0'; 
	                cpf[9] = dv1;     
	             
	                temp1 = (cpf[0] * 0) + (cpf[1] * 1) + (cpf[2] * 2) + (cpf[3] * 3) + (cpf[4] * 4) + (cpf[5] * 5) + (cpf[6] * 6) + (cpf[7] * 7) + (cpf[8] * 8) + (cpf[9] * 9); 
	                dv2 = temp2 % 11; 
	                 
	                cpf[10] = '\0'; 
	                cpf[10] = dv2;     
	                 
	                if (dv2 == 0){ 
	                    dv2= 0;} 
	                }         
	                if(v1 == cpf[9] && v2 == cpf[10]){ 
	                    printf("CPF está de acordo com os DV's"); 
	                } 
	                else{ 
	                    printf("CPF NÃO está de acordo com os DV's"); 
	                }         
	         } 
	        } 
	    }