[c] verif bancaire

Fermé
perdu - 26 janv. 2008 à 17:28
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 - 26 janv. 2008 à 19:11
Bonjour,
pour vérifier la validité d'un compte bancaire, il faut regarder si le reste de la division (modulo%97) des 10 premier chiffres est égale au deux dernier chiffres!
XXXXXXXXXX-XX

mon programme ne fonctionne pas!

#include <stdio.h>
#include<stdlib.h>

void main (void)

{
	long nonmbre1,reste;
	short nombre2;
	;

	
    
	do
{
	printf("entrez les 10 premiers chiffres de votre compte bancaire\n\t");
	scanf("%l",&nombre1);
	

	printf("entrez les deux derniers chiffres de votre compte bancaire\n\t");
	scanf("%hd",&nombre2);
	}while ( nombre1 >99999 && nombre2>9)
	
    

	
	reste= nombre1%97;
	
	if(reste == nombre2)
	{	 
		printf(" le compte bancaire est valide\n");
	}
	else
	{
		printf(" le compte bancaire est invalide\n");

	}
	
}

3 réponses

wolveryne Messages postés 4 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 26 janvier 2008
26 janv. 2008 à 17:32
long nonmbre1,reste;
short nombre2;
;

tu as un point virgule qui est en trop en dessous de la déclaration du short normalement c'est ca qui bloque
0
c'est une faute de frappe mais ce n'est pas ça qui bloque!
#include <stdio.h>
#include<stdlib.h>

void main (void)

{
	long nombre1,reste;
	short nombre2;
	

	
    
	do
	{
	printf("entrez les 10 premiers chiffres de votre compte bancaire\n\t");
	scanf("%l",&nombre1);
	
	}while ( nombre1 >99999); 
	do
	{
	printf("entrez les deux derniers chiffres de votre compte bancaire\n\t");
	scanf("%hd",&nombre2);
	}while(nombre2>9);

	
    

	
	reste= nombre1%97;
	
	if(reste == nombre2)
	{	 
		printf(" le compte bancaire est valide\n");
	}
	else
	{
		printf(" le compte bancaire est invalide\n");

	}
	
}
0
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
26 janv. 2008 à 19:11
Ton problème est d'un autre ordre.

En C, un entier long est sur 32 bits. Donc en non signé, tu peux représenter des nombres de 0 à 4294967296, soient maximum 8 chiffres !

Il te faut faire de l'arithmétique 64 bits, tout simplement !
0