Nombre d'occurance Matrice en language C

Fermé
kikzee Messages postés 70 Date d'inscription dimanche 6 mars 2016 Statut Membre Dernière intervention 16 décembre 2020 - 20 oct. 2018 à 09:20
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 21 oct. 2018 à 11:07
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 23235 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 septembre 2024 Ambassadeur 1 538
20 oct. 2018 à 10:33
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 dimanche 6 mars 2016 Statut Membre Dernière intervention 16 décembre 2020 3
20 oct. 2018 à 10:39
merci beaucoup
0
yg_be Messages postés 23235 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 septembre 2024 1 538 > kikzee Messages postés 70 Date d'inscription dimanche 6 mars 2016 Statut Membre Dernière intervention 16 décembre 2020
20 oct. 2018 à 10:41
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 dimanche 6 mars 2016 Statut Membre Dernière intervention 16 décembre 2020 3
20 oct. 2018 à 11:26
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 23235 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 septembre 2024 1 538 > kikzee Messages postés 70 Date d'inscription dimanche 6 mars 2016 Statut Membre Dernière intervention 16 décembre 2020
Modifié le 20 oct. 2018 à 12:31
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 dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
21 oct. 2018 à 11:07
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 dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
20 oct. 2018 à 11:23
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