Programme C
Résolu
kirua-93
Messages postés
599
Date d'inscription
Statut
Membre
Dernière intervention
-
kirua-93 Messages postés 599 Date d'inscription Statut Membre Dernière intervention -
kirua-93 Messages postés 599 Date d'inscription Statut Membre Dernière intervention -
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;
}
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;
}
A voir également:
- Programme C
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
35 réponses
if(c<a)
{ printf("%d\n",c);
goto entier;
}
goto triangulaire;
}
en fait, je n'avais pas regardé ton code du début, mais j'ai vu ce que j'ai copié ci-dessus.
goto == le mal en personne (ou plutot en commande C)
il faut que tu apprennes l'utilisation des variables et des boucles. n'utilise jamais le goto, on peut tout faire sans lui même si ça parait plus compliqué. Le goto est une énorme source de bug. Oublie ce mot. Pour toujours.
{ printf("%d\n",c);
goto entier;
}
goto triangulaire;
}
en fait, je n'avais pas regardé ton code du début, mais j'ai vu ce que j'ai copié ci-dessus.
goto == le mal en personne (ou plutot en commande C)
il faut que tu apprennes l'utilisation des variables et des boucles. n'utilise jamais le goto, on peut tout faire sans lui même si ça parait plus compliqué. Le goto est une énorme source de bug. Oublie ce mot. Pour toujours.
Le résultat est normal. Il ne faut pas trop se fier à ce qui se passe sous Windows ;-)
Rajoute des 'printf' du style
Bonne réflexion.
Rajoute des 'printf' du style
printf("a=%d b=%d c=%d\n", a, b, c);et tu comprendras.
Bonne réflexion.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
heu quesque l'action de compiler ?
compiler = transformer ton code (du texte) en programme ( du code binaire machine). Lorsque tu fais des modifications dans ton code, selon l'environnement que tu utilises, il faut bien compiler ton programme avant de le lancer, sinon l'environnement va lancer le dernier programme compilé, c-est-à-dire avant que tu fasses la modification, c'est pour cela qu'il te conseillait d'essayer de recompiler avant.
Mais suis les conseils de Loupius surtout.
Mais suis les conseils de Loupius surtout.
oups pardon, j'ai mal compris ton problème :
La c'est un problème de systèmes d'exploitation : le programme compilé avec code blocks sous windows ce sera un .exe , avec du code conçu pour être compris par Windows.
Pour Ubuntu, vu que c'est linux, il faut reprendre ton code et le compiler (gcc ...) pour en faire un programme linux. Sinon il n'y a aucune chance que ça marche : Windows et Linux (ou plutot Unix) ne parlent pas la même langue.
La c'est un problème de systèmes d'exploitation : le programme compilé avec code blocks sous windows ce sera un .exe , avec du code conçu pour être compris par Windows.
Pour Ubuntu, vu que c'est linux, il faut reprendre ton code et le compiler (gcc ...) pour en faire un programme linux. Sinon il n'y a aucune chance que ça marche : Windows et Linux (ou plutot Unix) ne parlent pas la même langue.
Installe Cygwin pour Windows, tous les packages de Dev, et fais moi signe quand tu auras déjà fait ca.
Bon je balance la suite. Il t'aura surement installé Cygwin dans C:/cygwin.
Place ton fichier C dans c:/cygwin/home
Lance Cygwin.
On lance la compilation du fichier :
gcc -c fichier.c
gcc fichier.o -o fichier
./fichier
Place ton fichier C dans c:/cygwin/home
Lance Cygwin.
On lance la compilation du fichier :
gcc -c fichier.c
gcc fichier.o -o fichier
./fichier
Ah non ces bon pour windows ce n'est que sous linux que le programme marche d'ailleur que sa marche ou pas sous win je men fiche un peu ^^
mais merci quand meme
mais merci quand meme
Je suis peut être allé un peu vite sur les explications. Cygwin est un programme qui te simule un environnement Linux sous Windows, et très simple d'emploi. Donc si tu veux faire marcher ton programme sous windows, ou meme programmer sou swindows... CYGWIN !
Mais jai deja compiler mais ligne de code sous ubuntu avec gcc -o nomdufichier.c test
./test
et c la que sa maffiche 0 1
./test
et c la que sa maffiche 0 1
arf ji suis presque je le sens
voila la fonction que j'ai faite elle fait apparaitre les nombres triangulaires et maintenant je doit faire apparaitre les nombres entier (1 2 3 4 5 ect..) sans les triangulaire dedans
La question ces comment faire cela ? ces avec unefonction for que lon fait sa nn ?
voila la fonction que j'ai faite elle fait apparaitre les nombres triangulaires et maintenant je doit faire apparaitre les nombres entier (1 2 3 4 5 ect..) sans les triangulaire dedans
La question ces comment faire cela ? ces avec unefonction for que lon fait sa nn ?
oui il faudra une boucle for, bien entendu.
Pour afficher tous les nombres entiers jusqu'à 99:
pour ne pas écrire ceux qui sont triangulaires, tu peux utiliser un tableau de nombres triangulaires que tu as calculé.
je suppose que c'est celui-ci : int nbTriang[N] // contient les N premiers nombres triangulaires
Alors, comme les nombres triangulaires sont rangés dans le tableau (le plus petit est nbTriang[0]), ilsuffit d'attendre que tu tombes sur le premier. Si tu tombes dessus, tu n'affiches rien. Et ensuite tu t'attends à voir apparaitre le deuxième, etc... ça devient ceci :
Pour afficher tous les nombres entiers jusqu'à 99:
for (int nombre=1; nombre< 100; nombre++) { printf("%d ", nombre); }
pour ne pas écrire ceux qui sont triangulaires, tu peux utiliser un tableau de nombres triangulaires que tu as calculé.
je suppose que c'est celui-ci : int nbTriang[N] // contient les N premiers nombres triangulaires
Alors, comme les nombres triangulaires sont rangés dans le tableau (le plus petit est nbTriang[0]), ilsuffit d'attendre que tu tombes sur le premier. Si tu tombes dessus, tu n'affiches rien. Et ensuite tu t'attends à voir apparaitre le deuxième, etc... ça devient ceci :
int compteur=0; for (int nombre=1; nombre< 100; nombre++) { //on vérifie si le nombre actuel est le prochain nombre triangulaire if (nombre == nbTriang[compteur]) { //ici on n'affiche pas le nombre //mais il faut avancer le compteur pour le prochain qui apparaitra compteur++; } else { //le nombre n'est pas le prochain trangulaire alors on l'affiche printf("%d ", nombre); } }
Ah oki mais fraudré surtout le dire a nos prof a la fac ils nous le sorte toutes les 30 secondes ^^
Enfin personnellement j'apprend plus chez moi avec le net que a la fac enfin bon merci du conseil.
Enfin personnellement j'apprend plus chez moi avec le net que a la fac enfin bon merci du conseil.
On vien juste de commencer les boucles for avec on a plus besoin d'utiliser goto donc je pourais suivre ton conseil et ne plus lutiliser enfin je crois