Langage C
Résolu
wanish10
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je viens d'établir un programme en langage C, dans lequel j'ai déclaré une variable tableau de type chaine de caractère, pour pouvoir stocker un nom & prénom, avec un espace entre les deux, mais lorsque je viens d'afficher le résulta, le programme ne fonctionne pas comme il faut, merci de votre aide
je viens d'établir un programme en langage C, dans lequel j'ai déclaré une variable tableau de type chaine de caractère, pour pouvoir stocker un nom & prénom, avec un espace entre les deux, mais lorsque je viens d'afficher le résulta, le programme ne fonctionne pas comme il faut, merci de votre aide
A voir également:
- Langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
3 réponses
en tous les cas merci mais hélas, j'ai le même problème, mais cette fois avec un tableau de deux dimensions, j'ai essayer avec tous les méthodes même avec la fonction fgets(*char,dim,fil).
le programme est :
//saisie des informations concernants les candidats
#include<stdio.h>
#include<stdlib.h>
main()
{
char prenom[5][10];
char nom[5][10];
float note[3][3],s;
int i,j;
printf("------------------* calcul des moyennes des candidats *-----------------\n\n");
//remlissage des tableaux
for(i=1;i<=2;i++)
{
printf("prenom : \n ",i);
scanf("%19[^\n]",prenom[i]);
printf("nom : \n ",i);
scanf("%19[^\n]",nom[i]);
for(j=1;j<=3;j++)
{
printf("donner la note de trimestre %d\n",j);
scanf("%f",¬e[i][j]);
}
}
puts("\n\n");
//affichage des informations
for(i=1;i<=2;i++)
{
s=0;
printf("------------------* fiche de : %s %s *-----------------\n\n",prenom[i],nom[i]);
for(j=1;j<=3;j++)
{
printf("la note de trimestre %d est %0.2f\n",j,note[i][j]);
s=note[i][j]+s;
}
printf("la moyenne est : %0.2f\n",s/3);
puts("\n");
}
system("pause");
return 0;
}
lorsque j'élimine la boucle destiné pour la saisie des notes, le programme marche bien, mais avec cette boucle je peux pas saisir une chaîne de caractère avec un espace.
le programme est :
//saisie des informations concernants les candidats
#include<stdio.h>
#include<stdlib.h>
main()
{
char prenom[5][10];
char nom[5][10];
float note[3][3],s;
int i,j;
printf("------------------* calcul des moyennes des candidats *-----------------\n\n");
//remlissage des tableaux
for(i=1;i<=2;i++)
{
printf("prenom : \n ",i);
scanf("%19[^\n]",prenom[i]);
printf("nom : \n ",i);
scanf("%19[^\n]",nom[i]);
for(j=1;j<=3;j++)
{
printf("donner la note de trimestre %d\n",j);
scanf("%f",¬e[i][j]);
}
}
puts("\n\n");
//affichage des informations
for(i=1;i<=2;i++)
{
s=0;
printf("------------------* fiche de : %s %s *-----------------\n\n",prenom[i],nom[i]);
for(j=1;j<=3;j++)
{
printf("la note de trimestre %d est %0.2f\n",j,note[i][j]);
s=note[i][j]+s;
}
printf("la moyenne est : %0.2f\n",s/3);
puts("\n");
}
system("pause");
return 0;
}
lorsque j'élimine la boucle destiné pour la saisie des notes, le programme marche bien, mais avec cette boucle je peux pas saisir une chaîne de caractère avec un espace.
Si tu définis une taille 10 pour tes noms et prénoms (char prenom[5][10], char nom[5][10]), ce n'est plus %19[^\n] qu'il faut utiliser mais %9[^\n]
Ensuite gros problème au niveau de ton scanf("%f",¬e[i][j]);
Déjà, je ne vois pas ce que viens faire le ¬ et surtout j est compris entre 1 et 3 alors qu'il devrait très certainement être entre 0 et 2, même si on en sait rien puisque e n'existe pas !
Remarque : tu as le même problème d'indice un peu plus loin, mais tout ceci ne concerne plus du tout ton problème de lecture avec espaces...
Ensuite gros problème au niveau de ton scanf("%f",¬e[i][j]);
Déjà, je ne vois pas ce que viens faire le ¬ et surtout j est compris entre 1 et 3 alors qu'il devrait très certainement être entre 0 et 2, même si on en sait rien puisque e n'existe pas !
Remarque : tu as le même problème d'indice un peu plus loin, mais tout ceci ne concerne plus du tout ton problème de lecture avec espaces...
Salut !!
Ta méthode n'est pas correcte -> scanf("%[^\n]",identite);
Voici un petit exemple si j'ai bien compris ton programme :
int main() {
char saisie[100]; // tableau qui contient nom + espace + prenom
printf("Veuillez saisir votre nom et prenom du style 'nom prenom':\n");
scanf("%99s", saisie); // 99 caracteres max seront pris
printf("Resultat de la saisie -> %s\n", saisie);
return 0;
}
Ta méthode n'est pas correcte -> scanf("%[^\n]",identite);
Voici un petit exemple si j'ai bien compris ton programme :
int main() {
char saisie[100]; // tableau qui contient nom + espace + prenom
printf("Veuillez saisir votre nom et prenom du style 'nom prenom':\n");
scanf("%99s", saisie); // 99 caracteres max seront pris
printf("Resultat de la saisie -> %s\n", saisie);
return 0;
}
mon programme est :
#include<stdio.h>
#include<stdlib.h>
main()
{
char identite[20];
printf("entrer votre nom et prenom\n");
scanf("%s",&identite);
printf("tu es %s\n",identite);
system("pause");
return 0;
}
si je tape par exemple ( jaune killy ) le programme m'affiche seulement jaune