CODICE FISCALE

di il
7 risposte

CODICE FISCALE

Sera a tutti...sono entrato in completa confusione..come risolvo

/*Scrivere un programma C che:
· richiede all’utente di immettere una stringa corrispondente al suo codice fiscale
· determina se l’utente è maschio o femmina
· stampa a video il codice fiscale, il sesso, il giorno e l’anno di nascita dell’utente
A tale scopo si usi la funzione int calcolanumero(char num1, char num2) che riceve in ingresso
due caratteri che rappresentano rispettivamente la cifra delle decine e la cifra delle unità e
restituisce il corrispondente numero decimale.
Si ricorda che il codice ASCII del carattere ‘0’ (zero) è 48
Esempio: se num1 = ‘5’, num2 = ‘8’, la funzione restituisce 58.
Si ricorda che nel caso che l’utente sia di sesso femminile la parte del codice fiscale corrispondente
al giorno di nascita è costituita dal giorno di nascita + 40.
ESEMPIO:
Se l’utente immette il seguente codice fiscale:XXXYYY85H47G478S
Cognome Nome Anno Mese Giorno Altro
str: X X X Y Y Y 8 5 H 4 7 G 4 7 8 S
il programma deve stampare a video:
codice fiscale inserito: XXXYYY85H47G478S
sesso femminile
giorno di nascita: 7
anno di nascita: 85*/
#include<stdio.h>
#include<string.h>
#define dim 16

int calcolanumero(char num1, char num2);
int main(){
char CF[dim]; 
int i,anno,giorno;   
printf("Inserisci il codice fiscale :");
gets(CF);          
          
printf("il codice fiscal e': ");         
for(i=0;i<strlen(CF)!='\0';i++){
     printf("%s",&CF[i]); 
 
         CF[i]='\0';    
                            }
printf("\n");                            
calcolanumero(CF[8],CF[9]);                            
                                           
         }

int calcolanumero(char num1, char num2){
         if(num1+num2>40){
                    
               printf("sesso : f ");                
                               }  
               else
               printf("sesso : m ");                           
                            }

7 Risposte

  • Re: CODICE FISCALE

    Non postare tutto il problema senza una precisa domanda ... concentrati sulla specifica parte di quello su cui hai problemi/errori.
  • Re: CODICE FISCALE

    Ok...come faccio allora a calcolare il giorno?
  • Re: CODICE FISCALE

    Allora un codice fiscale e composto da 16 caratteri
    i primi 6 rappresentano il nome e il cognome della persona di solito sono tutte consonanti.
    i caratteri 7 e 8 sono l'anno di nascita
    carattere 9 è il mese codificato secondo una tabella
    caratteri 10 e 11 rappresentano il giorno di nascita.
    mentre per i maschi i giorni vanno da 1 a 31 per le femmine vanno da 41 a 71
    i caratteri da 12 a 15 rappresentano il comune di nascita naturalmente codificato
    l'ultimo carattere ovvero il 16 rappresenta il carattere di controllo.
    con queste informazioni dovresti facilmente risolvere il tuo problema.
  • Re: CODICE FISCALE

    ozzy ha scritto:


    ok...come faccio allora a calcolare il giorno?
    Nella stringa avrai che i caratteri

    da [0] a [5] sono il cognome e il nome
    da [6] a [10] rappresentano la data

    Il giorno è nei caratteri

    [9] [10]

    Basterà trasformarli in un valore decimale considerando appunto che sono espresse in ASCII

    g = 10*(cf[9]-'0')+(cf[10]-'0')
  • Re: CODICE FISCALE

    Ok...primo passo..
    #include<stdio.h>
    #include<string.h>
    #define dim 16
    int calcolanumero(char num1, char num2);
    
    int main(){
    char cf[dim]; 
    int i;
    char giorno[dim];
    char anno[dim];   
    printf("Inserisci il codice fiscale: ");
    gets(cf);
    printf("\ncodice inserito: %s",cf); 
    
    for(i=0;i<1;i++){
    printf("\nanno di nascita:");
    anno[i]=calcolanumero(cf[6],cf[7]);
    
    
      
                      } 
    
        return 0;
              }
    int calcolanumero(char num1, char num2){
         
         printf("%c%c",num1,num2);              
                                           }
    ..


    ora dovrei trasformare da ASCII a interi per sottrarre il numero dei giorni..giusto?
    come si fa?
  • Re: CODICE FISCALE

    Li togli il carattere '0' e trovi il numero. Esempio
    
    char c = '4';
    int n = c - '0';
    
  • Re: CODICE FISCALE

    Ma come lo passo per scalare i giorni da quelli femminili?
Devi accedere o registrarti per scrivere nel forum
7 risposte