while (p[cpt-1] != '.') char p[50];
int cpt=0;
printf("Entrez une phrase: ");
do
{
scanf("%c",&p[cpt]);
} while (p[cpt] != '.' && ++cpt);while (p[cpt-1] != '.')char Ligne[80]={0};
if (fgets(Ligne,79,stdin) != NULL)
{
// le chaine Ligne, c'est un tableau avec 0 terminal, contient ce qui a été tapé avant le frappe de ENTER
unsigned char c=Ligne[4]; // c est égal au 5ème caractère de Ligne;
}
char Ligne[80];
char Mot[8];
int code;
float V1, V2;
if (fgets(ligne, stdin) != NULL)
{
sscanf(Ligne,"%s %d %f %f",Mot, &code, &V1, &V2);
}Rockleader a écrit:EN réalité; lorsque j'appuie sur ma touche pour faire la majuscule; il prend cela comme une caractère à part entière; y a t'il un moyen d'éviter cela ?
Je n'ai pas ce problème, tu pourrais mettre le code que tu utilises si ça ne te dérange pas ?
Egalement, ta seconde structure m'intrigue; pourquoi ++cpt et non cpt++ ? Peut on fait l'incrémentation du compteur de cette façon comme on le ferait dans un for ?
- Code: Tout sélectionner
int i = 3;
int j = i++; // j vaut 3, i vaut 4
- Code: Tout sélectionner
int i = 3;
int j = ++i; // j vaut 4; i vaut 4
Dans l'instruction suivante:on test si p[cpt]!='.', si c'est le cas, alors on incrémente cpt, et on continue si la (nouvelle) valeur de cpt est différente de 0.
- Code: Tout sélectionner
while(p[cpt] != '.' && ++cpt)
Si on met cpt++, il y aura un problème lors de la première itération où cpt=0
while(p[cpt] != '.' && ++cpt)
fatal_error a écrit:et accessoirement cpt<50
Dlzlogic a écrit:Par exemple si la vigne tapée contient un mot (ie une chaine), un entier et 2 flottants, le code pourrait être ceci
- Code: Tout sélectionner
char Ligne[80];
char Mot[8];
int code;
float V1, V2;
if (fgets(ligne, stdin) != NULL)
{
sscanf(Ligne,"%s %d %f %f",Mot, &code, &V1, &V2);
}
Ceci est ma méthode, chacun a ses petites habitudes.
A suivre éventuellement.
Un tableau est seulement une description de son point de départ et de son type. En d'autres termes, si on déclare un tableau Tab[10] et qu'on 'écris val=Tab[100], on aura naturellement n'importe quoi dans val mais probablement pas d'erreur, ni à la compilation ni à l'exécution si pas malchance la valeur pointée par Tab[100] est en accord avec ce qui est attendu.
Ceci est tout de même fondamental en C.
int tab[100][2] = {{0}};Dlzlogic a écrit:Bonjour,
En C, un tableau à 2 dimensions est un tableau de tableau.
En fait en C, la notion de tableau à plusieurs dimensions n'existe pas.
Ce tableau est un tableau de 100 lignes avec 2 colonnes, comme on traite habituellement une tableau de 100 points défini par X et Y.
C'est à dire si j'écris X = T[25][0]. j'aurais bien l'X du 25è point.
Pour initialiser un tel tableau, je fais comme ça;
for (i=0; i<100; i++)
{
T[i][0]=0;
T[i][1]=0;
}
Quand tu aura appris à utiliser les alloc, tu comprendras que même si on trouve de raccourcis, ça revient à ça.
ampholyte a écrit:Bonjour,
Tu peux également l'initialiser comme ceci :
- Code: Tout sélectionner
int tab[100][2] = {{0}};
Ensuite il faut savoir que lorsque tu déclares une variable dans une fonction, celle-ci est "détruite" à la fin de cette fonction.
int parfIntervalle(int n1, int n2); /*retourne dans un tableau les parfait de l'intervalle n1 n2*/
int main()
{
int Parfait[100]={0};
...
...
Parfait[100]=parfIntervalle(a,b);
return 0;
}
int parfIntervalle(int n1, int n2)
{
int Parfait[100]={0}; /*je donne le même nom que le tableau du main mais je suis bien conscient que ce n'est pas le même et qu'il est détruit en sorti de fonction*/
/*traitement je stocke à partir de 0 les parfait...les valeurs restantes restent à 0*/
return Parfait[100];
}
ampholyte a écrit:As-tu vu les pointeurs car sans eux tu ne pourras pas t'en sortir ?
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :