Boucle while en C

Résolu/Fermé
platinnson Messages postés 106 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 2 septembre 2015 - 30 mars 2009 à 18:44
AmineKalaa Messages postés 87 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 10 janvier 2011 - 30 mars 2009 à 19:25
Bonjour,
J'écris un programme qui demande à l'utilisateur saisir des nombres et s'arrête lorsqu'il entre un zéro. A la fin, le programme vous donne le plus grand nombre et l'indice de saisie de celui-ci. Voici mon programme C mais il ne marche pas. Quelqu'un peut-il m'aider à corriger mon erreur? MERCI

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

int main(int argc, char *argv[])
{
long N, PG, IPG, i;
//N est le nombre à entrer
//PG est l'identification du plus grand nombre
//IPG est l'indice de saisie de ce dernier
//i est le compteur, c'est à dire combien de nombres ont été saisie
printf("Entrez des nombres et terminez par un zero: \n");
PG=0;
N=3;
IPG=1;
i=1;
while (N!=0)
{
printf("Entrez le nombre numero %ld :", i);
scanf("%ld", &N);
if (i=1 || N<PG)
{
PG=N;
IPG=i;
}
i++;
}
printf("vous venez d'entrer %ld nombre(s) et le plus grand d'eux est %ld .\n", i, PG);
printf("Son indice de saisie est %ld .\n", IPG);
system("PAUSE");
return 0;
}

2 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
30 mars 2009 à 19:01
Ce sont les comparaison dans ton if qui sont fausse c'est plutot
if (i==1 || N>PG)
et puis pour afficher
printf("vous venez d'entrer %ld nombre(s) et le plus grand d'eux est %ld .\n", i-1, PG);
2
AmineKalaa Messages postés 87 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 10 janvier 2011 7
30 mars 2009 à 19:25
c'est pas le N que vous bouclez sur lui mai l'entier qui vien d'etre lu !! non!!
num_cour=1; //c'est pour entrer dans la noucle la 1er fois
while((i<=N) &&(num_cour!=0))
{
scanf(%d",&num_cour);
....???? et apres????
IL FAUT UTILISER UN TABLEAU POR STOCKER LES VALEURS LU !!!!
-1