Nombre d'occurance Matrice en language C

kikzee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je n'arrive pas a afficher le nombre d'occurance dans un tableau a 2dimension matrice
voici mon code:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int arr[50][50],n,i,j;
    int num,count;

    printf("Enter total number of elements: ");
    scanf("%d",&n);

    //read array elements
    printf("Enter array elements:\n");
    for(i=0;i< n;i++)
        for(j=0;j< n;j++)
    {
        printf("Enter element %d: ",i+1,j+1);
        scanf("%d",&arr[i][j]);
    }

    printf("Enter number to find Occurrence: ");
    scanf("%d",&num);

    //count occurance of num
    count=0;
    for(i=0;i< n;i++)
        for(j=0;j< n;j++)
    {
        if((arr[i]==num)&&(arr[j]==num))
            count++;
    }
    printf("Occurrence of %d is: %d\n",num,count);
    return 0;
}

A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, deux suggestions:
1) en plus d'écrire "je n'arrive pas", écris aussi ce que fait ton programme, et en quoi c'est différent de ce que tu souhaites qu'il fasse. cela fait partie de ton travail, et t'aidera à progresser.

2) commence par afficher le contenu de la matrice. c'est une façon de décomposer ton exercice en éléments plus simples, ce qui te permettra de vérifier que tu maîtrises chaque élément. afficher le contenu te permettra de vérifier que tu maîtrises le remplissage de la matrice, ainsi que la technique pour la parcourir. et d'apprendre ce que tu ne connais pas encore.
0
kikzee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   3
 
merci beaucoup
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > kikzee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
si tu n'as pas d'autre question, peux-tu marquer le sujet comme résolu, via la roue dentée à droite du titre?
0
kikzee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai crée 3 Fichier .C/.H/Main .
mon programme doit affiche le nombre d'occurance dans une matrice hors,lorsque j'appelle la fonction occu dans la main affiche une erreur

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#include"FCT.h"
int main()
{
int tab[50][50],n,i,j;



printf("Entrer le nombre total du Matrice: ");
scanf("%d",&n);

printf("Entrer l'element du Matrice :\n");
for(i=0;i< n;i++)
for(j=0;j< n;j++)
{
printf("Enter element %d: ",i+1,j+1);
scanf("%d",&tab[i][j]);
}


occu(tab[7][7],n);

return 0;
}


la fonction


void occu (int tab [7][7], int n)
{
int num,i,j,count;
count=0;
printf("Entrer nombre d'occurance: ");
scanf("%d",&num);


for( int i=0;i< n;i++);
for( int j=0;j< n;j++)
{
if(tab[i][j]==num)
count++;

}
printf("Nombre d'occurance %d est: %d\n",num,count);


}
Merci d'avance
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > kikzee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
l'erreur est-elle secrète?
tu as introduit un élément de complexité supplémentaire, en passant une matrice comme paramètre. tu as commis deux erreurs en faisant cela.
je suggère de faire d'abord l'exercice sans appel de fonction.
ensuite, mon conseil : "afficher le contenu de la matrice" restera valable, quand tu feras une fonction.
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Quand tu appelles la fonction occu c'est le tableau que tu dois passer en paramètre pas un élément de ce tableau.

La fonction occu doit être définie pour recevoir un tableau dont toutes les dimensions sauf la première doivent être strictement identiques à celles de ton tableau.
   int tab[50][50];
   ......
   occu( tab , n );   // on utilise le nom du tableau, cela passe un pointeur sur la première ligne
   ......

//la fonction 
void occu( int tab[][50] , int n )  // reçoit un pointeur sur la première ligne (ligne de taille 50)
{ ......
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,
Quand ru remplis la matrice, tu accèdes à un élément par
arr[i][j]
. Là je comprends.
Quand tu cherches dans la matrice, tu utilises
arr[i]
et
arr[j]
, sais-tu ce que c'est? Ces éléments sont des lignes de la matrice. Le compilateur a dû lui aussi trouver cela bizarre et te l'a vraisemblablement signalé par des warnings.
0