Affichage des 0s

Fermé
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016 - Modifié par Duaam le 4/10/2014 à 11:05
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016 - 4 oct. 2014 à 17:16
Voici mon code source sur le c++ d'un programme qui calcule les moyennes marginales ,les variances et l'écart type d'une matrice de variables aléatoires .
Après l'exécution du programme et avant d'afficher la matrice aléatoire ses dimensions données en n et m s'affichent comme matrice de 0 , alors comment je peux supprimer l'apparition de ces 0 .
Merci .
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void remplissage (float T[100][100],int n,int m)
{
      int i,j;
      srand(time(NULL));
      for (i=0;i<n;i++)
     {
      for (j=0;j<m;j++){
     
      T[i][j]= rand()%10;
      printf ("%d ",T[i][j]);
       }
        printf ("\n");
     }
  
   
}
 
//calcul des moyennes marginales //
void  moy_marg (float M[100][100],float T[100],int *l,int *p)
{
int i,j;float s;
for (i=0;i<*l;i++)
{
    s=0;
    for (j=0;j<*p;j++)
    {
        s=s+M[i][j];}
        T[i]=s/(*p);}
        }
//calcul de la variance //
void var_ecar(float M[100][100],float  V[100],float W[100],int *l,int *p)
{
  int i,j;
      float r,T[100];
     for (i=0;i<*l;i++)
     {
         r=0;
         for(j=0;j<*p;j++)
         {
                          
                         r=r+((M[i][j]-T[i])*(M[i][j]-T[i]));
                         }V[i]=r/(*p);
                         
                         W[i]=sqrt(V[i]);
                         }
                         }
                         void affichage (float  N[100],int c)
                         {
                              int i;
                              for(i=0;i<c;i++)
                              {
                                              printf("%f \n",N[i]);
                                              }printf("\n");}
                            void affichagem (float  N[100][100],int c,int d)
                         {
                              int i,j;
                              for(i=0;i<c;i++)
                              {
                               for(j=0;j<d;j++){
                               
                                             printf("%f\t",N[i][j]);
                                              }
             printf("\n");}
          }
                              
                         main()
                         {
                               int n,m,i,j; float M[100][100], V[100],T[100],W[100];
                                system("color 1D");
                               printf("Donnez les dimensions de votre matrice :\n");
                                printf("Donnez n=");
                                scanf("%i",&n);
                                printf("Donnez m=");
                                scanf("%i",&m);
                                remplissage(M,n,m);
                                affichagem (M,n,m);
                                moy_marg(M,T,&n,&m);
                                 system("color 4E");
                                printf("voici votre vecteur moyennes :\n");
                                affichage (T,n);
                                var_ecar (M,V,W,&n,&m);
                                
                                printf("Voici votre vecteur variance :\n");
                                 affichage (V,n);
                                system("color 3F");
                                printf("Voici votre vecteur ecart type  :\n");
                                affichage (W,n);
                             
                                system("pause");
                                return 0;
                                }


Édit ajout de la coloration syntaxique

3 réponses

Salut, apparament ta fonction remplissage effectue aussi un affichage:
printf ("%d ",T[i][j]);
0
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016
4 oct. 2014 à 14:45
Salut , oui le problème c'était avec le printf ("%d ",T[i][j])
Merci bcq JwTdd et bonne journée
0
De rien ;)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
Modifié par fiddy le 4/10/2014 à 15:31
Bonjour,

Quelques remarques sur ton code :
srand(time(NULL));=> A mettre plutôt dans le main() au début. Il faut l'utiliser une seule fois dans ta fonction.

main() => C'est int main(void) le bon prototype sans argument.
Attention à la fonction system()... Pas portable.
Utilise plutôt des double que des float.

L'indentation est à revoir également.

Sinon, pour info, ton code ce n'est pas du C++ mais du C...

Cdlt,

Google is your friend
0
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016
4 oct. 2014 à 16:01
Bonjour ,
Merci fiddy pour ces remarques .
je connais pas vraiment la différence entre les deux langues c et c++ ,mais je travaille depuis 2 ans avec le Dec c++
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
4 oct. 2014 à 16:06
Dev C++ tu veux dire ? Pour info, c'est un environnement obsolète.
Je te conseille plutôt Code::Blocks.
Sinon le C++ est un autre langage. Par exemple au lieu de scanf("%d",&a), en C++ on utilise plutôt std::cin>>a;
Mais là, c'est bien du C que tu nous as montré ;-).
0
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016
4 oct. 2014 à 16:23
Ouii pardon ,le Dev c++
0
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016
4 oct. 2014 à 16:33
Tout ce que je connaisse c'est que le Dev C++ est un environnement qui permet de programmer avec le C et le C++ , peut être les syntaxes utilisées se ressemblent non !!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
4 oct. 2014 à 17:08
Oui les syntaxes se ressemblent. Mais ce sont 2 langages différents.
Si je te dis que ce que tu fais c'est du C et pas du C++, c'est pour les prochaines fois où tu demandes de l'aide. Si tu demandes un truc en C++, on te donnera un code C++ que tu intègreras dans ton C... Pas super.
C'est important de connaître sa langue ;-).
0