Programme C

Résolu/Fermé
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 - 12 janv. 2010 à 16:17
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 - 28 janv. 2010 à 20:03
Bonjour,
Voila j'ai un programme en C mais celui-ci ne marche que sur codeblock sous windows et des que je le lance dans le terminal de ubuntu il ne m'affiche que 0 1..
Help me



#include<stdio.h>
#include<stdlib.h>
main(){
int a;
int b;
int c;
a = 1;
b = 1;
c = 0;
printf("%d\n", c);
triangulaire:
if(a>1000)exit(0);
a = a+1;
b = a+b;
entier:
if(c>100)exit(0);
c = c+1;
if(c<a)
{ printf("%d\n",c);
goto entier;
}
goto triangulaire;
}


35 réponses

Romiinet Messages postés 596 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 2 novembre 2014 107
13 janv. 2010 à 00:44
je n'est pas lu toute les raiponces, je ne sait pas si on te la déja dit mais tes 6 1er ligne se résume a sa :
int a,b,c;
a = b = c = 1;

ou :

int a=1,b=1,c=1;

la boucle while est plus simple a utiliser si tu a du mal avec le for.

les GOTO oublie c'est très mauvais.
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 00:47
Hum je crois que j'ai compris l'idée je crée un tableau avec dedans la fonction triangulaire et dans la fonction nombre j'appel la fonction triangulaire pour quel "supprime" les nombres égaux.
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 00:50
Merci Romiinet mais je ne connais pas la boucle while ^^
0
Romiinet Messages postés 596 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 2 novembre 2014 107
13 janv. 2010 à 00:57
un while c'est comme un if qui se répète temps que la condition est vrai.

exemple :

i=0;
while(i<10){
...
...
...

i++;

}

voila ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 01:09
ah oki merci du petit cour
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 17:52
Je pense avoir trouver l'idée pour faire tournée ma fonction
#include<stdio.h>
#include<stdlib.h>
main(){
int a;
int b;
int c;
a = 1;
b = 1;
c = 0;
encore:
retour:
a=a+1;
b=a+b;
c++;
if(c==b), goto retour; // c et le compteur et recois 1 a chaque tour et b contient les nbr triangulaire si c=b alors il retour et rajoute 1 a c et passe au second nbr triangulaire.
printf("%d ",c); // affiche c ci c n'est pas egale a b.
if(b<100) goto encore; //recommence la fonction tant que b et inférieure a 100
}


j'utilise une fonction if pour dire de faire apparaitre c sauf quand c=b la il nafiche rien et continue son bout de route.
Mais je narive pas a faire tourner la fonction je ne ces pas pourquoi
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
13 janv. 2010 à 20:11
if(c==b), goto retour;
C'est quoi la virgule ?
Enlève-là, compile, lance le programme et tu auras le résultat suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13
C'est bien ce que tu voulais ? Si ce n'est pas le cas, c'est que ton programme n'est pas correct.
Bonne continuation.
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 19:43
lorsque tu écris un programme, il faut prendre l'habitude de prendre une feuille de papier, un crayon et une gomme. Tu essayes d' "exécuter" toi-même ton programme en le faisant, ligne par ligne. Note bien ce qui se passe au niveau des variables. Il faut aussi écrire qqpart ce qui va s'afficher à l'écran. Après 2 ou 3 tours (ou plus), tu verras que ton programme ne fait pas ce que tu veux.
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 19:44
oki merci du conseil
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 19:52
ici dans ce que le code que tu as donné : qu'est ce que ça te donne ?
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 20:03
Sa me donne une erreure pour goto.
En faite j'ai compris comment faire mon programme ces juste que je ne connais pas les bon "mot" pour le faire marcher
grossièrement l'idée que j'ai actuellement ces de calculé le 1er triangulaire puis de le comparer a mon compteur si ces nes pas les meme je rajoute 1 au compteur et je recommence si c les meme je naffiche rien et je passe au second nombre triangulaire.
Ces juste que je ne ce pas utiliser les fonctions de boucle comme for while et if
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 20:17
alors il faut apprendre ;) ce n'est pas très compliqué :

la structure de décision :

if (condition) {
  //ligne(s) de code à exécuter si condition est vraie
}
//à partir d'ici peu importe condition ce sera exécuté


On peut faire aussi :
if (condition) {
  //ligne(s) de code à exécuter si condition est vraie
}
else {
  //lignes de code à exécuter si condition est fausse
}
//à partir d'ici peu importe condition ce sera exécuté
 


Mais il me semble que tu avais déjà compris ça.


Ensuite les boucles (aussi appelées structures d'itération):
while (condition) {
  //ligne(s) de code qui s'exécuteront tant que la condition est vraie
}


Ex :
//Dans ce programme rien ne s'affiche.
int a=5;
while (a < 3) {
  printf("Salut \n");
  a = a+1;
}


//Dans ce programme "Salut" d'affiche 3 fois.
int a=5;
while (a < 8) {
  printf("Salut \n");
  a = a+1;
}
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661 > Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013
13 janv. 2010 à 20:21
note : il y a deux autres façon de faire une boucle : avec do{...}while() et for(;;){...}, mais en fait tu peux absolument tout faire avec while(){...} uniquement, les autres sont juste des raccourcis ou des petites variantes en quelque sortes.
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 20:24
Oki je croi que j'ai compris pour while je vais essayer avec sa merci
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 20:28
n'hésite pas à faire des essais, mais comme je t'ai dis avant : essaye de voir ce que ça va donner, à l'avance, avec un bout de paier et un crayon, et ensuite teste-le pour voir si tu avais raison.

Si tu ne comprends pas pourquoi tu obtiens qqchose alors que tu pensais obtenir autre chose, fias-nous part de ta question ici, mais en précisant ce que tu pensais obtenir et ce que tu obtiens en fait.
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 21:35
Heu comment on fait pour que quand la fonction arrive a la fin elle retourne au debut ? (sans utiliser goto)
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 21:56
je ne comprends pas ta phrase. Pourrais-tu préciser ou mettre de la ponctuation et des connecteurs ?
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 21:58
#include<stdio.h>
#include<stdlib.h>
main(){
int a;
int b;
int c;
a = 1;
b = 1;
c = 0;

Depart

a=a+1;
b=a+b;
while(c=b){
c++;
}
printf("%d ",c);

Arriver
}

Je souhaite quel parte de depart et aille a arriver autant de fois que je le veux.
Merci

0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 22:00
regarde l'exemple de boucle while() que je t'ai donné plus haut. Essaye de raisonner et de créer une boucle qui affiche autant de fois "Salut" que tu le souhaites (disons : 10 par exemple).

Ensuite, on mélangera ça avec ton programme :)
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 22:10
int a=5;
while (a < 15) {
printf("Salut \n");
a = a+1;
}

Comme sa ?
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
13 janv. 2010 à 22:22
voilà (Attention : pas de majuscule à int ... essaye ton code sur ton compilateur dans un programme test! ).

On peut faire plus simple : int a = 0; while(a<10) { ... }


donc voilà, il suffit de rajouter une variable comme ça et une boucle while . Pas "a" car tu utilises déjà ce nom de variable, mais peu importe ;).

PS : a = a+1; s'écrit a++; habituellement
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
13 janv. 2010 à 22:45
A oui je voix sa crée une boucle obligant le programme a recommencer
oki merci v test sa se soir je posterais surement demain
merci encore pour ton aide
0
kirua-93 Messages postés 599 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 octobre 2014 72
28 janv. 2010 à 20:03
Merci j'ai trouver
0