View Single Post
Old 03-02-2013, 14:55   #1
<B>Pietro<B>
Member
 
L'Avatar di <B>Pietro<B>
 
Iscritto dal: Oct 2009
Messaggi: 165
Aiutino in C per il codice fiscale

Buongiorno esperti,

Sto apprendendo il linguaggio C a scuola e ci hanno assegnato un esercizio: calcolare le prime 6 cifre del codice fiscale.
Le lettere sono maiuscole; trovate le istruzioni nel codice:

Codice:
/*
 *  Esercizio CODICE FISCALE:
 *  Cognome:
 *          -le prime 3 conosonanti
 *          -se non hai cononanti metti le vocali
 *          -se non hai vocali la terza lettera e' una X (Es. YEX)
 *
 *
 *  Nome:
 *       -1°,2°,4° consonanti se ne ha 3
 *       -1°,2°,3° cononanti se non ha la quarta
 *
 *  Created by Pietro on 02/02/2013.
 *  Copyright 2013. All rights reserved.
 *
 */

#include <stdio.h>
#include<string.h>

//riceve un caratere e dice Vero se e' vocale
int isvocali(carattere){
    int i;
    if(carattere=='A' ||carattere=='E'|| carattere=='I' || carattere=='O' || carattere=='U'||carattere=='a'|| carattere=='e'|| carattere=='i' ||carattere=='o' || carattere=='u'){
        //True: sono vocali
        return 1;
    }
    else{
        //False: sono consonanti
        return 0;
    }
}

//Trasforma il carattere minuscolo in minuscolo
int maiuscolo(carattere){
    int i;
    if(97<carattere<122){
        carattere=carattere+32;
    }
}

int main(){
    
    //Introduzioni delle variabili
    char nome[20],cognome[30],nomec[20],cognomec[30];
    char codfiscale[6];
    int i,j,risn,risc;
    int contatore=0;
    char x='X';
    
    //Input
    printf("Inserisci il tuo nome: ");
    gets(nome);
    
    printf("Inserisci il tuo cognome: ");
    gets(cognome);
    
    //Inserimento cognome
    for(i=0;i<strlen(cognome);i++){
        risn=isvocali(nome[i]);
        if(risn==0 && contatore<4){
            codfiscale[contatore]=cognome[i];
            contatore=contatore+1;
        }
        if(contatore>=3){
            break;
        }
        if(i==strlen(cognome)-1 && contatore<4){
            for(j=0;j<strlen(cognome);j++){
                if(risn==1 && contatore<4){
                    codfiscale[contatore]=cognome[j];
                    contatore=contatore+1;
                }
                if(contatore<3){
                    contatore=contatore+1;
                    strcat(&x,codfiscale);
                }
                }
                }
        }
        strcat(nomec,nome);
            
 /*   //Inserimento nome
    for(i=0;strlen(nome);i++){
        risn=isvocali(nome[i]);
    }
   */     
        
    //Stampa della lista
    for(i=0;i<strlen(codfiscale);i++){
        printf("%c",codfiscale[i]);
    
    }
    //printf("%s",nomec);
    getchar();
    return 0;
    
}
Nel codice fiscale le prime 3 lettere sono del cognome, le altre 3 del nome. Lo so, gets fa schifo ma ci hanno detto di usare solo quello.

Il problema? Il cognome lo dà sbagliato… (il nome lo farò più tardi). Any help?

Grazie in anticipo :-)
__________________
 Mac Mini 2006  Mac Mini 2009  iPod Touch 4G  iPod Nano 6°  Magic Mouse  Apple Keyboard  Apple Remote Control (white)  Macbook Pro 15" (2012) 
<B>Pietro<B> è offline   Rispondi citando il messaggio o parte di esso