Langage C
Résolu/Fermé
wanish10
-
2 févr. 2012 à 23:41
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 févr. 2012 à 14:35
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 févr. 2012 à 14:35
A voir également:
- Langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Delphi (langage) - Télécharger - Langages
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
2 févr. 2012 à 23:43
2 févr. 2012 à 23:43
Bonjour,
Merci de poster votre programme, ça sera plus simple pour aider.
Merci de poster votre programme, ça sera plus simple pour aider.
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.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
8 févr. 2012 à 14:35
8 févr. 2012 à 14:35
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;
}
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
4 févr. 2012 à 23:31
4 févr. 2012 à 23:31
En quoi ne serait-elle pas correcte ?
En plus wanish10 (qui a posé la question) a lui même mis que ça marchait !!!
Ça correspondait donc bien à ce qu'il avait besoin, contrairement à ta solution pour laquelle le scanf s'arrête malgré tout à l'espace !!!
En plus wanish10 (qui a posé la question) a lui même mis que ça marchait !!!
Ça correspondait donc bien à ce qu'il avait besoin, contrairement à ta solution pour laquelle le scanf s'arrête malgré tout à l'espace !!!
2 févr. 2012 à 23:53
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
2 févr. 2012 à 23:57
Modifié par wanish10 le 3/02/2012 à 00:10
3 févr. 2012 à 00:23
4 févr. 2012 à 21:03