dps do verificador de cpf
agora o gerador
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
main() {
int cpf[10], i, opcao;
while (true) {
printf("\n\nGerador de cpf\n\n(1)Gerar\n(2)Sair\n");
scanf("%d",&opcao);
if (opcao==1) {
srand(time(NULL));
cpf[9] = 0;
cpf[10] = 0;
for (i=0; i<=8; i++) {
cpf[i] = rand() %10;
cpf[9] = (cpf[i]*(i+1))+cpf[9];
printf("%d", cpf[i]);
if (i==2||i==5)
printf(".");
if (i==8)
printf("-");
}
for (i=1; i<=9; i++)
cpf[10] = (cpf[i]*i)+cpf[10];
cpf [9] = cpf[9]%11;
cpf[10] = cpf[10]%11;
if (cpf[9]==10)
cpf[9] = 0;
if (cpf[10]==10)
cpf[10] = 0;
printf("%d%d",cpf[9], cpf[10]);
}
else
if (opcao==2)
break;
else
printf("Opcao invalida!");
}
}
pow tava testandu uns cpfs aki pra ve si u prog tava 100% e achei um erro
tem ke checar se o 1. digito eh maior que 10 antes de gerar o 2. digito
no caso
if (cpf[9]==10)
cpf[9] = 0;
vem antes de
for (i=1; i<=9; i++)
cpf[10] = (cpf*i)+cpf[10];
tae o programa 100% agora
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
main() {
int cpf[10], i, opcao;
while (true) {
printf("\n\nGerador de cpf\n\n(1)Gerar\n(2)Sair\n");
scanf("%d",&opcao);
if (opcao==1) {
srand(time(NULL));
cpf[9] = 0;
cpf[10] = 0;
for (i=0; i<=8; i++) {
cpf[i] = rand() %10;
cpf[9] = (cpf[i]*(i+1))+cpf[9];
printf("%d", cpf[i]);
if (i==2||i==5)
printf(".");
}
printf("-");
if (cpf[9]==10)
cpf[9] = 0;
for (i=1; i<=9; i++)
cpf[10] = (cpf[i]*i)+cpf[10];
cpf [9] = cpf[9]%11;
cpf[10] = cpf[10]%11;
if (cpf[10]==10)
cpf[10] = 0;
printf("%d%d",cpf[9], cpf[10]);
}
else
if (opcao==2)
break;
else
printf("Opcao invalida!");
}
}
bom apesar de ngm ter comentado o topico
volto aki pra corrigir outro erro no programa... outra vez envolvendo o 1. digito
no caso ele estava perguntando se o resto da divisao por 11 é igual a 10 antes mesmo de dividir...

codigo corrigido:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
main() {
int cpf[10], i, opcao;
while (true) {
printf("\n\nGerador de cpf\n\n(1)Gerar\n(2)Sair\n");
scanf("%d",&opcao);
if (opcao==1) {
srand(time(NULL));
cpf[9] = 0;
cpf[10] = 0;
for (i=0; i<=8; i++) {
cpf[i] = rand() %10;
cpf[9] = (cpf[i]*(i+1))+cpf[9];
printf("%d", cpf[i]);
if (i==2||i==5)
printf(".");
}
printf("-");
cpf [9] = cpf[9]%11;
if (cpf[9]==10)
cpf[9] = 0;
for (i=1; i<=9; i++)
cpf[10] = (cpf[i]*i)+cpf[10];
cpf[10] = cpf[10]%11;
if (cpf[10]==10)
cpf[10] = 0;
printf("%d%d",cpf[9], cpf[10]);
}
else
if (opcao==2)
break;
else
printf("Opcao invalida!");
}
}