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 :-)