Ciao a tutti,
ho appena risolto il seguente problema, pero vorrei condividere con voi il metodo risolutivo, perche io credo di averlo risolto proprio da Beginner
il testo e il seguente
si hanno queste associazioni tra numeri e lettere (quelle sulla tastiera telefonica)
2 abc
3 def
3 ghi
5 jkl
6 mno
7 pqrs
8 tuv
9 wxyz
il programma, preso un numero di 7 cifre da tastiera, deve stampare su un file tutte le possibili parole che si possono formare con il numero dato, tenendo conto appunto che a ogni numero sono associate tre lettere. ORa vi posto il mio codice, tutte le idee di miglioramento sono accettate caldamente
Ciao a tutti!
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
int q,w,e,r,t,y,u,a,s,d,f,g,h,i;
int z=3,x=3,c=3,v=3,b=3,n=3,m=3;
char lettere[8][5]={"abc\0","def\0","ghi\0","jkl\0","mno\0","pqrs\0","tuv\0","wxyz\0"};
char numero[10];
FILE *fptr;
fptr=fopen("c:\\parole.txt","w+");
if(fptr==NULL) // il file e stato aperto correttamente?
{
perror("");
exit(0);
}
printf("Inserire numero telefonico senza 0 e 1:");
scanf("%s",numero);
a=(int)numero[0]-48;s=(int)(numero[1])-48;d=(int)numero[2]-48;f=(int)numero[3]-48;g=(int)(numero[4])-48;
h=(int)(numero[5])-48;i=(int)(numero[6])-48;
if((a-7)==0||(a-5)==0)
{
z=4;
}
if((s-7)==0||(s-5)==0)
{
x=4;
}
if((d-7)==0||(d-5)==0)
{
c=4;
}
if((f-7)==0||(a-5)==0)
{
v=4;
}
if((g-7)==0||(a-5)==0)
{
b=4;
}
if((h-7)==0||(a-5)==0)
{
n=4;
}
if((i-7)==0||(i-5)==0)
{
m=4;
}
for(q=0;q<z;q++)
{
for(w=0;w<x;w++)
{
for(e=0;e<c;e++)
{
for(r=0;r<v;r++)
{
for(t=0;t<b;t++)
{
for(y=0;y<n;y++)
{
for(u=0;u<m;u++)
{
fprintf(fptr,"%c%c%c%c%c%c%c\n",lettere[a-2][q],lettere[s-2][w],lettere[d-2][e],
lettere[f-2][r],lettere[g-2][t],lettere[h-2][y],lettere[i-2][u]);
}
}
}
}
}
}
}
fflush(fptr);
fclose(fptr);
system("pause");
}