A voir également:
- Afficher un carré en c
- Afficher mot de passe wifi android - Guide
- Parenthese carré ✓ - Forum Clavier
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
- Afficher un tableau en c - Forum C
- Parenthese carre ✓ - Forum Word
4 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
16 oct. 2005 à 19:11
16 oct. 2005 à 19:11
reslig="lig(i)"; rescar="car(i)";
Ici tu n'exécutes pas lig() et car()
Ce que tu fait c'est faire pointer reslig vers la chaine de caractère "lig(i)" et rescar vers la chaine "car(i)"
Tu les entoures de guillemets ce ne sont que des chaînes.
Pour executer une fonction, il ne faut pas l'entourer de guillemets.
Donc ce serait:
reslig=lig(i); rescar=car(i);
C'est déjà plus correct: lig(i) s'execute et affiche à l'écran ta ligne.
Ta fonction s'en charge donc ton printf() plus loin ne sert à rien.
En fait je vois ton résonnement, tu pensais qu'en faisant:
reslig="lig(i)";
..reslig contiendrait ce qu'affiche lig(i), et bien non ça ne fonctionne pas comme ça :-)
printf(), ça affiche toujours à l'écran et ça ne charge pas l'affichage ailleurs.
Par contre lig et car sont des fonctions de type void, donc inutile de mettre:
reslig=lig(i);
puisque lig(i) ne retourne aucune valeur (mais effectue des actions, il faut distinguer les deux notions).
Donc pour ton main, ceci corrigera déjà certains truc:
int main() //Par convention, main doit retourner un int { int i; clrscr(); printf("entrer la valeur de i"); scanf("%d",&i); lig(i); car(i); getch(); return 0; }
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
16 oct. 2005 à 19:17
16 oct. 2005 à 19:17
Ah j'oubliais:
Pourquoi pas bon?
Parce que comme je l'ai dis au dessus, lig(i) ne retourne aucune valeur (il est typé void). Donc ton printf n'affichera rien (peut être même que ça te déclenchera une erreur).
lig() fait déjà un affichage à l'écran, tu n'as donc pas à t'en soucier:
void car(i) { for(i=1; i<=8; i++) { printf(lig(i)); //Pas bon!!! } printf("\n"); getch(); }
Pourquoi pas bon?
Parce que comme je l'ai dis au dessus, lig(i) ne retourne aucune valeur (il est typé void). Donc ton printf n'affichera rien (peut être même que ça te déclenchera une erreur).
lig() fait déjà un affichage à l'écran, tu n'as donc pas à t'en soucier:
void car(i) { for(i=1; i<=8; i++) { lig(i); // La foule en délire..... } printf("\n"); getch(); }
Voici l'algo du programme que je dois réaliser.
Voici le code après quelques modifications
La fonction lig() ne doit pas être bonne car quelqesoit la veleur de i que je donne, j'obtient toujours 8 charactères d'affiché à l'écran.
Procédure : ligne(données N entier) variable i : entier (pour compter le nombre de répétition) début pour i variant de 1 a N par pas de 1 faire écrire("*") fin pour passer à la ligne fin Procédure : carré(données N entier) variable i : entier (pour compter le nombre de répétition) début pour i variant de 1 a N par pas de 1 faire ligne(N) fin pour fin Procédure : triangle(données N entier) variable i : entier (pour compter le nombre de répétition) début pour i variant de 1 a N par pas de 1 faire ligne(i) fin pour fin
Voici le code après quelques modifications
#include <stdlib.h> #include <stdio.h> void car(int i); void lig(int i); void main() { int i; clrscr(); printf("entrer la valeur de i"); fflush(stdin); scanf("%d",&i); printf("vous avez choisi i=%d\n",i); lig(i); car(i); getchar(); } void lig(int k) { for(i=1; i<=8; i++) { printf("*"); } printf("\n"); getch(); } void car(int q) { for(q=1; q<=8; q++) { lig(q); } getch(); }
La fonction lig() ne doit pas être bonne car quelqesoit la veleur de i que je donne, j'obtient toujours 8 charactères d'affiché à l'écran.
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
17 oct. 2005 à 09:52
17 oct. 2005 à 09:52
La fonction lig() ne doit pas être bonne car quelqesoit la veleur de i que je donne, j'obtient toujours 8 charactères d'affiché à l'écran.
void lig(int k)
{
for(i=1; i<=8; i++) // Ok ca tourne que de 1 a 8 normal ...
{
printf("*");
}
printf("\n");
getch();
}
remplace:
for(i=1; i<=8; i++)
PAR
for(i=1; i<=k; i++)
Zep3k!GnO
-->hi i hi o on va pas au boulot :P
void lig(int k)
{
for(i=1; i<=8; i++) // Ok ca tourne que de 1 a 8 normal ...
{
printf("*");
}
printf("\n");
getch();
}
remplace:
for(i=1; i<=8; i++)
PAR
for(i=1; i<=k; i++)
Zep3k!GnO
-->hi i hi o on va pas au boulot :P