예제 #1
0
파일: ft_itoa.c 프로젝트: mdambrev/42
char		*ft_itoa(int n)
{
	char	*tab;
	int		x;
	int		i;

	x = 0;
	i = 0;
	if (n == -2147483648)
		return (overflow());
	if ((tab = (char *)malloc(sizeof(char) * (nb_chiffre(n) + 1))) == NULL)
		return (0);
	i = taille_base(n);
	if (n < 0)
	{
		n = -n;
		tab[x] = '-';
		x++;
	}
	while (i >= 1)
	{
		tab[x] = ((n / i) % 10) + 48;
		i /= 10;
		x++;
	}
	tab[x] = '\0';
	return (tab);
}
예제 #2
0
	// MAIN
int main()
{
	nb_sol=0;
	int i;
	LG_CHAINE_RES=0;
	saisie();
	int n_max=nb_chiffre(nb_mots());
	strcpy(old_chaine_cryptarithme,chaine_cryptarithme);
	char chaine_tmp[255];
	FILE * dictionnaire=fopen("Ods.txt","r");
	if(dictionnaire==NULL)
	{
		printf("dictionnaire introuvable!\n");
		exit(-1);
	}
	bool first_exec=true;
	do
	{
		nb_sol=0;
		if(first_exec)
		{
			do 
			{
				fscanf(dictionnaire,"%s",chaine_tmp);
			}while(strlen(chaine_tmp)<lg_max);
			first_exec=false;
		}
		else 
			fscanf(dictionnaire,"%s",chaine_tmp);
		
		if (mot_utilisable(chaine_tmp))
		{
			nb_cols=nb_mots();
			i=strlen(chaine_cryptarithme)-1;
				//printf("%s\n",chaine_cryptarithme);
			LG_CHAINE_RES=0;
			while(chaine_cryptarithme[i]!='=')
			{
				LG_CHAINE_RES++;
				i=i-1;
			}
				//printf("LG_c %d\n",LG_CHAINE_RES);
			
				// L'allocation dynamique des matrices m et m_chars
			m=(int**)malloc(sizeof(int*)*LG_CHAINE_RES);
			for(i=0;i<LG_CHAINE_RES;i++)
				m[i]=(int*)malloc(sizeof(int*)*nb_cols);
			
			m_chars=(char**)malloc(sizeof(char*)*LG_CHAINE_RES);
			for(i=0;i<LG_CHAINE_RES;i++)
				m_chars[i]=(char*)malloc(sizeof(char*)*nb_cols);
				// ########### fin de l'allocation dynamique
			
			initialise_m();
			initialise_m_chars();
			rempli_m_chars(strlen(chaine_cryptarithme)-1,nb_cols-1);
			
			_INT_LISTE=(int*)malloc(sizeof(int*)*nb_chars);
			_CHARS_LISTE=(char*)malloc(sizeof(char*)*nb_chars);
			
			initialise_int_liste();
			initialise_char_liste();
			
				//Start Searching!
			cherche_sol(0);
			
			if(nb_sol!=0)
			{
				printf("%s\n",chaine_tmp);
			}
		}
			//free_mem();
	}while(strlen(chaine_tmp)<=lg_max+n_max);
	
	char c_null;
	while (true)
	{
		printf("taper n'importe quelle touche pour quitter: ");
		scanf("%c",&c_null);
		scanf("%c",&c_null);
			//printf("bonjour\n");
		break;
	}
	
	return 0;
}