#include <stdio.h> #include <string.h> #include <time.h> #include <stdlib.h> // Função para calcular e gerar o CPF completo // Os 9 primeiros dígitos: inscrição inicial (aleatórios ou fornecidos pelo usuário) // O 10º dígito: primeiro dígito verificador // O 11º dígito: segundo dígito verificador void gerarCPF(char *cpf, int regiao) { if (strlen(cpf) != 9) { printf("Erro: O CPF deve conter exatamente 9 dígitos.\n"); return; } printf("\n\n=== Gerando CPF... ===\n"); // Cálculo do primeiro dígito verificador int somaParcial = 0, primeiroDV = 0, segundoDV = 0; for (int i = 0; i < 9; i++) somaParcial += (cpf[i] - '0') * (i + 1); primeiroDV = somaParcial % 11; if (primeiroDV == 10) primeiroDV = 0; cpf[9] = '0' + primeiroDV; printf("Primeiro dígito verificador (D1): %d\n", primeiroDV); // Cálculo do segundo dígito verificador somaParcial = 0; int peso = 11; for (int i = 0; i < 10; i++) somaParcial += (cpf[i] - '0') * peso--; segundoDV = (somaParcial * 10) % 11; if (segundoDV == 10) segundoDV = 0; cpf[10] = '0' + segundoDV; printf("Segundo dígito verificador (D2): %d\n", segundoDV); cpf[11] = '\0'; // Adiciona o caractere de terminação } // Função para calcular o dígito verificador de um código ISBN-10 int calcularISBN(char *codigo) { int somaParcial = 0; if (strlen(codigo) != 9) { printf("\nErro: O código ISBN deve conter exatamente 9 dígitos.\n"); return -1; } // Calcula a soma ponderada dos dígitos (pesos de 10 a 2) for (int i = 0; i < 9; i++) { if (codigo[i] < '0' || codigo[i] > '9') { printf("\nErro: O código ISBN contém caracteres inválidos.\n"); return -1; } somaParcial += (codigo[i] - '0') * (10 - i); } // Calcula o dígito verificador int resto = somaParcial % 11; int digitoVerificador = (11 - resto) % 11; // Retorna o dígito verificador ('X' para 10) if (digitoVerificador == 10) { return 'X'; } else { return '0' + digitoVerificador; } } int main() { int opcao = 0; int execucoes = 0; while (1) { printf("======= MENU ========\n"); printf("Escolha uma opção:\n1. Gerar CPF\n2. Calcular dígito verificador de código ISBN\n\n"); scanf(" %d", &opcao); execucoes++; switch (opcao) { case 1: char cpf[12]; printf("Digite os 9 primeiros dígitos do CPF: "); scanf("%9s", cpf); gerarCPF(cpf, 8); printf("\nCPF Gerado: %c%c%c.%c%c%c.%c%c%c-%c%c\n\n", cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]); break; case 2: char isbn[10]; printf("Digite os 9 primeiros números do código ISBN: "); scanf(" %s", isbn); int digitoVerificador = calcularISBN(isbn); if (digitoVerificador == -1) { printf("\nErro ao calcular o dígito verificador. Tente novamente.\n"); break; } printf("\n\nDígito verificador: %c\n", digitoVerificador); printf("Código ISBN completo: %c%c%c%c%c%c%c%c%c%c\n\n", isbn[0], isbn[1], isbn[2], isbn[3], isbn[4], isbn[5], isbn[6], isbn[7], isbn[8], digitoVerificador); break; default: printf("Escolha uma opção válida.\n"); break; } if (execucoes == 2) { break; } } return 0; }
Write, Run & Share C Language code online using OneCompiler's C online compiler for free. It's one of the robust, feature-rich online compilers for C language, running the latest C version which is C18. Getting started with the OneCompiler's C editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'C' and start coding!
OneCompiler's C online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample C program which takes name as input and print your name with hello.
#include <stdio.h>
int main()
{
char name[50];
printf("Enter name:");
scanf("%s", name);
printf("Hello %s \n" , name );
return 0;
}
C language is one of the most popular general-purpose programming language developed by Dennis Ritchie at Bell laboratories for UNIX operating system. The initial release of C Language was in the year 1972. Most of the desktop operating systems are written in C Language.
When ever you want to perform a set of operations based on a condition if-else
is used.
if(conditional-expression) {
// code
} else {
// code
}
You can also use if-else for nested Ifs and if-else-if ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to if-else-if ladder.
switch(conditional-expression) {
case value1:
// code
break; // optional
case value2:
// code
break; // optional
...
default:
// code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
// code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while(condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Array is a collection of similar data which is stored in continuous memory addresses. Array values can be fetched using index. Index starts from 0 to size-1.
data-type array-name[size];
data-type array-name[size][size];
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity.
Two types of functions are present in C
Library functions are the in-built functions which are declared in header files like printf(),scanf(),puts(),gets() etc.,
User defined functions are the ones which are written by the programmer based on the requirement.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
//code
}