Tableau en Langage C
Fermé
jup89
-
10 oct. 2010 à 16:21
Mr. D@RK Messages postés 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 - 10 oct. 2010 à 20:50
Mr. D@RK Messages postés 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 - 10 oct. 2010 à 20:50
A voir également:
- Tableau en Langage C
- Tableau croisé dynamique - Guide
- Code ascii tableau - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
Modifié par fiddy le 10/10/2010 à 16:49
Modifié par fiddy le 10/10/2010 à 16:49
Bonjour,
Pourquoi ne pas faire une simple boucle for ?
Par exemple :
Sinon, pour le return; il manque le 0. Il s'agit de return 0;
Ensuite pour les points que vous devez faire, je vous recommande les fonctions.
Ce qui pourra donner :
Pour compter le nombre d'éléments non nuls, une simple boucle, une condition (if) et un compteur fera l'affaire.
Pour trouver le premier indice non nul, une simple boucle avec une condition (if) fera l'affaire.
Et pour l'affichage, une simple boucle avec un printf fera l'affaire.
Cdlt,
Pourquoi ne pas faire une simple boucle for ?
Par exemple :
for(i=0;i<50;i++) scanf(...)
Sinon, pour le return; il manque le 0. Il s'agit de return 0;
Ensuite pour les points que vous devez faire, je vous recommande les fonctions.
Ce qui pourra donner :
#include <stdio.h> #include <stdlib.h> int nbZero(int *t, const size_t sz) { ... } int premier EltNonNul(int *t, const size_t sz) { ... } int main (void) { int t[50],i,n; printf("Veuillez rentrer les 50 nombres : \n"); for (i=0;i<50;i++) { scanf("%d",&t[i]); } printf("%d éléments nuls\n",nbZero(t,50); printf("%d ...\n",premierEltNonNul(t,50); ... system("PAUSE"); return 0; }
Pour compter le nombre d'éléments non nuls, une simple boucle, une condition (if) et un compteur fera l'affaire.
Pour trouver le premier indice non nul, une simple boucle avec une condition (if) fera l'affaire.
Et pour l'affichage, une simple boucle avec un printf fera l'affaire.
Cdlt,
jean-pierreL
Messages postés
796
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
10 mai 2014
65
10 oct. 2010 à 16:39
10 oct. 2010 à 16:39
Bonjour,
enchainer quoi ?
a+jp
enchainer quoi ?
a+jp
Bè le reste des questions
Déjà premièrement comment calculer le nombre de 0 tirés...
j'ai essayer de rajouter un if :
if (t[i]==0){
...
mais là je sais plus quoi faire.
Et en même temps avec une boucle WHILE je vois pas non plus
Déjà premièrement comment calculer le nombre de 0 tirés...
j'ai essayer de rajouter un if :
if (t[i]==0){
...
mais là je sais plus quoi faire.
Et en même temps avec une boucle WHILE je vois pas non plus
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
10 oct. 2010 à 16:51
10 oct. 2010 à 16:51
Lis mon commentaire ci-dessus.
En gros :
int cpt=0;
for(i=0;i<50;i++) {
if (t[i]==0)
cpt++;
}
En gros :
int cpt=0;
for(i=0;i<50;i++) {
if (t[i]==0)
cpt++;
}
Merci mais je n'utilise pas le FOR...
je dois utiliser while ou if
j'ai essayer ça :
Mais ça me marque toujours 1 que j'en mette 0 ou 5
(j'ai remplacé 50 par 5 histoire que je puisse rapidement tester le programme)
je dois utiliser while ou if
j'ai essayer ça :
#include <stdio.h> #include <stdlib.h> int main () { int t[5],i,n,trouve; i=0; trouve=0; printf("Veuillez rentrer les 5 nombres : \n"); while(i<5){ scanf("%d",&t[i]); i=i+1; if(t[i]==0){ trouve=trouve+1; printf("Nombre de zero est de : %d\n",trouve); } } system("PAUSE"); return; }
Mais ça me marque toujours 1 que j'en mette 0 ou 5
(j'ai remplacé 50 par 5 histoire que je puisse rapidement tester le programme)
Mr. D@RK
Messages postés
26
Date d'inscription
lundi 19 juillet 2010
Statut
Membre
Dernière intervention
16 octobre 2010
28
10 oct. 2010 à 17:06
10 oct. 2010 à 17:06
le probleme est dans:
i=i+1;
if(t[i]==0){
trouve=trouve+1;
printf("Nombre de zero est de : %d\n",trouve);
}
//
car tu incrémente avant de tester. remplace le par:
if(t[i]==0){
trouve=trouve+1;
}
i=i+1;
i=i+1;
if(t[i]==0){
trouve=trouve+1;
printf("Nombre de zero est de : %d\n",trouve);
}
//
car tu incrémente avant de tester. remplace le par:
if(t[i]==0){
trouve=trouve+1;
}
i=i+1;
oui j'allais répondre merci bien Mr.D@RK
j'ai trouvé :
Maintenant je vais tester la suite je vous dis
j'ai trouvé :
#include <stdio.h> #include <stdlib.h> int main () { int t[5],i,n,trouve; i=0; trouve=0; printf("Veuillez rentrer les 5 nombres : \n"); while(i<5){ scanf("%d",&t[i]); if(t[i]==0){ trouve=trouve+1; } i=i+1; } printf("Nombre de zero est de : %d\n",trouve); system("PAUSE"); return; }
Maintenant je vais tester la suite je vous dis
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
10 oct. 2010 à 17:20
10 oct. 2010 à 17:20
Et tu ne peux pas faire de fonction non plus ?
Car c'est une très mauvaise façon de procéder ainsi (mettre tout dans le main).
Car c'est une très mauvaise façon de procéder ainsi (mettre tout dans le main).
Ah oui d'accords merci
J'avais pas vu que lorsque je met un nombre>10 ça rajoute la même ligne en dessous et tant que je remet pas un nombre<10 ça accepte pas
C'est vraiment bien merci beaucoup :-)
juste le t[i]=-1 ??? pourquoi ? lol
J'avais pas vu que lorsque je met un nombre>10 ça rajoute la même ligne en dessous et tant que je remet pas un nombre<10 ça accepte pas
C'est vraiment bien merci beaucoup :-)
juste le t[i]=-1 ??? pourquoi ? lol
Mr. D@RK
Messages postés
26
Date d'inscription
lundi 19 juillet 2010
Statut
Membre
Dernière intervention
16 octobre 2010
28
10 oct. 2010 à 19:41
10 oct. 2010 à 19:41
pour entrer dans la boucle:
while(t[i]<0 || t[i]>10)(! remarque -1<0 :p ...héé je rigole seulement looool)
Mr. D@RK
Messages postés
26
Date d'inscription
lundi 19 juillet 2010
Statut
Membre
Dernière intervention
16 octobre 2010
28
10 oct. 2010 à 20:50
10 oct. 2010 à 20:50
avec plaisir =)
et n'oublie pas de marquer "sujet resolu"
Cdlt,
et n'oublie pas de marquer "sujet resolu"
Cdlt,