Exercice c
julie
-
dijasma -
dijasma -
Bonjour, comment faire pour
1/compter le nombre de fois que le nombre encodé se trouve dans le tableau et afficher le nombre de fois qu'il apparait!
2/ afficher tous les nombres mais une seule fois chacun même si il se trouve plusieurs fois!
je suis bloqué pouvez vous m'aider ? merci
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
void main (void)
{
int tab[10][10];
int i,j,nbr,min,max,nbre;
srand(time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
nbr=rand()%100+1;
tab[i][j]= nbr;
printf( "%d\t", tab[i][j] );
}
printf("\n");
}
min=max=tab[0][0];
/* recherche du minimu et maximum*/
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if( min > tab[i][j] )
{
min= tab[i][j];
}
if( max < tab[i][j] )
{
max=tab[i][j];
}
}
}
printf("le minimum est de : %d\n",min);
printf("le maximum est de: %d\n",max);
printf("\n");
/* demande d'un nombre et affichage plusieurs fois */
printf("entrez un nombre\n");
scanf("%d",&nbre);
if ( nbre == tab[i][j])
{
nbre = tab[i][j];
printf("nombre encoder a ete trouver %d fois",nbre);
}
else
printf("le nombre ne s'y trouve pas\n");
}
1/compter le nombre de fois que le nombre encodé se trouve dans le tableau et afficher le nombre de fois qu'il apparait!
2/ afficher tous les nombres mais une seule fois chacun même si il se trouve plusieurs fois!
je suis bloqué pouvez vous m'aider ? merci
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
void main (void)
{
int tab[10][10];
int i,j,nbr,min,max,nbre;
srand(time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
nbr=rand()%100+1;
tab[i][j]= nbr;
printf( "%d\t", tab[i][j] );
}
printf("\n");
}
min=max=tab[0][0];
/* recherche du minimu et maximum*/
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if( min > tab[i][j] )
{
min= tab[i][j];
}
if( max < tab[i][j] )
{
max=tab[i][j];
}
}
}
printf("le minimum est de : %d\n",min);
printf("le maximum est de: %d\n",max);
printf("\n");
/* demande d'un nombre et affichage plusieurs fois */
printf("entrez un nombre\n");
scanf("%d",&nbre);
if ( nbre == tab[i][j])
{
nbre = tab[i][j];
printf("nombre encoder a ete trouver %d fois",nbre);
}
else
printf("le nombre ne s'y trouve pas\n");
}
A voir également:
- Exercice c
- Transmath 3eme exercice - Forum Loisirs / Divertissements
- Corrigés 350 exercices niveau moyen ✓ - Forum Loisirs / Divertissements
- Cahier transmath 3° ex 6p37, 6et7p27 et 5p65 svp c'est urgent! ✓ - Forum Études / Formation High-Tech
- Le corrigé de cet exercice - Forum Programmation
- Fleur d'encre 5eme corrigé exercice ✓ - Forum PDF
4 réponses
Bonjour,
pour le premier point tu as presque tout fait :
Declares une nouvelle variable integer puisque tu as 100 cellules à verifier
int nb_fois;
Initialises la variable
nb_fois=0
Effectue une boucle pour scruter le tableau entier
// Y a moyen de faire cela par pointeur
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if ( nbre == tab[i][j]) nb_fois = nb_fois+1;
// if ( nbre == tab[i][j]) nb_fois++;
}
}
Cela ne me semble pas correct mais je ne trompe peut etre
min=max=tab[0][0];
//min=tab[0][0];
//max=min;
je te laisse 1 heure pour travailler sur le 2eme point
tchao
pour le premier point tu as presque tout fait :
Declares une nouvelle variable integer puisque tu as 100 cellules à verifier
int nb_fois;
Initialises la variable
nb_fois=0
Effectue une boucle pour scruter le tableau entier
// Y a moyen de faire cela par pointeur
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if ( nbre == tab[i][j]) nb_fois = nb_fois+1;
// if ( nbre == tab[i][j]) nb_fois++;
}
}
Cela ne me semble pas correct mais je ne trompe peut etre
min=max=tab[0][0];
//min=tab[0][0];
//max=min;
je te laisse 1 heure pour travailler sur le 2eme point
tchao
Salut,
essaie ça
essaie ça
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
int main (void)
{
int tab[10][10];
int i, j, nbr, min, max, nbre, freq;
freq = 0;
srand (time (NULL));
for (i = 0; i < 10; i++){
for (j = 0; j < 10; j++){
nbr = rand () % 100 + 1;
tab[i][j] = nbr;
printf ("%d\t", tab[i][j]);
}
printf ("\n");
}
min = max = tab[0][0];
/* recherche du minimu et maximum */
for (i = 0; i < 10; i++){
for (j = 0; j < 10; j++){
if (min > tab[i][j])
min = tab[i][j];
if (max < tab[i][j])
max = tab[i][j];
}
}
printf ("le minimum est de : %d\n", min);
printf ("le maximum est de: %d\n", max);
printf ("\n");
/* demande d'un nombre et affichage plusieurs fois */
printf ("entrez un nombre\n");
scanf ("%d", &nbre);
for (i = 0; i < 10; ++i){
for (j = 0; j < 10; ++j){
if (nbre == tab[i][j])
freq++;
}
}
if (freq > 0)
printf ("nombre encoder a ete trouver %d fois\n", freq);
else
printf ("le nombre ne s'y trouve pas\n");
return 0;
}
pour la deuxieme question tu peux mettre les nombres dans un tableau et avec une petite fonction tu fait en sorte qu'ils n'apparaissent qu'une seule fois
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
int cherche_nb(int nb, int t[100], int taille)
{
int i;
for(i=0;i<taille;i++)
if(nb==t[i])
return 0;
return 1;
}
int main (void)
{
int tab[10][10],tab_nb[100];
int i, j, nbr, min, max, nbre, freq, nb_a_cher, taille=1;
freq = 0;
srand (time (NULL));
for (i = 0; i < 10; i++){
for (j = 0; j < 10; j++){
nbr = rand () % 100 + 1;
tab[i][j] = nbr;
printf ("%d\t", tab[i][j]);
}
printf ("\n");
}
min = max = tab[0][0];
/* recherche du minimu et maximum */
for (i = 0; i < 10; i++){
for (j = 0; j < 10; j++){
if (min > tab[i][j])
min = tab[i][j];
if (max < tab[i][j])
max = tab[i][j];
}
}
printf ("le minimum est de : %d\n", min);
printf ("le maximum est de: %d\n", max);
printf ("\n");
/* demande d'un nombre et affichage plusieurs fois */
printf ("entrez un nombre\n");
scanf ("%d", &nbre);
for (i = 0; i < 10; ++i){
for (j = 0; j < 10; ++j){
if (nbre == tab[i][j])
freq++;
}
}
if (freq > 0)
printf ("nombre encoder a ete trouver %d fois\n", freq);
else
printf ("le nombre ne s'y trouve pas\n");
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
nb_a_cher=tab[i][j];
if(cherche_nb(nb_a_cher, tab_nb, taille) == 1)
{
tab_nb[taille-1]=nb_a_cher;
taille++;
}
}
printf("\nvoici tous les nombres du tableau qui apparaissent au moins une fois :");
printf("\n");
for(i=0;i<taille-1;i++)
printf("%d ",tab_nb[i]);
return 0;
}