C tableau problème
Jonathan_117
-
Jonathan_117 Messages postés 269 Statut Membre -
Jonathan_117 Messages postés 269 Statut Membre -
Bonjour à tous,
Voilà mon problème, je dois créer un tableau de caractères et les trier par ordre croissant mais quand je dois afficher le tableau il n'y a que des espaces qui s'affichent.
Merci d'avance.
voici mon code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void tailletab (short *, short *, char *);
void occurrence (short *, short *, char *, char *);
void sequence (char *, short *, short *, char *);
void tric (char *, short *, short *);
void affiche (short *, short *, char *);
void main (void)
{
short ligne, colonne;
char tab[10][10], lettre;
srand((int)time(NULL));
tailletab (&ligne, &colonne, &tab[0][0]);
occurrence (&ligne, &colonne, &tab[0][0], &lettre);
sequence (&tab[0][0], &ligne, &colonne, &lettre);
tric (&tab[0][0], &ligne, &colonne);
affiche (&ligne, &colonne, &tab[0][0]);
system ("pause");
}
void tailletab (short *ligne, short *colonne, char *ptab)
{
short i, j;
do
{
printf ("Combien de lignes voulez-vous utiliser dans le tableau (1 - 10) ? : ");
fflush(stdin);
scanf ("%hd", ligne);
printf ("\n");
}
while (*ligne < 1 || *ligne > 10);
do
{
printf ("Combien de colonnes voulez-vous utiliser dans le tableau (1 - 10) ? : ");
fflush(stdin);
scanf ("%hd", colonne);
}
while (*colonne < 1 || *colonne > 10);
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
*ptab = rand()%(123-97)+97;
}
}
printf ("\nLe tableau est rempli de caracteres aleatoires...\n");
}
void occurrence (short *ligne, short *colonne, char *ptab, char *lettre)
{
short i, j, cpt=0;
do
{
printf ("\nEncodez une lettre : ");
fflush(stdin);
*lettre = getchar();
}
while (*lettre < 'a' || *lettre > 'z');
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
if (*ptab == *lettre)
{
cpt++;
}
}
}
if (cpt != 0)
{
printf ("\nLa lettre %c apparait %hd fois dans le tableau.\n", *lettre, cpt);
}
else
{
printf ("\nLa lettre %c ne se trouve pas dans le tableau.\n", *lettre);
}
}
void sequence (char *ptab, short *ligne, short *colonne, char *lettre)
{
short i, j, cpt=0, cpt2=1, lig=-1;
do
{
printf ("\nEncodez une lettre : ");
fflush(stdin);
*lettre = getchar();
}
while (*lettre < 'a' || *lettre > 'z');
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
if (*ptab == *lettre)
{
cpt++;
if (cpt > cpt2)
{
cpt2 = cpt;
lig = i;
}
}
else
{
cpt = 0;
}
}
cpt = 0;
}
if (lig != -1)
{
printf ("\nLa lettre %c se trouve %hd fois d'affile sur la ligne %hd.\n\n", *lettre, cpt2, lig);
}
else
{
printf ("\nIl n'y a pas de sequence pour la lettre %c.\n\n", *lettre);
}
}
void tric (char *ptab, short *ligne, short *colonne)
{
short i, j, cpt;
char temp;
for (cpt=(*ligne)*(*colonne);cpt>0;cpt--)
{
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne-1;j++,ptab++)
{
if (*ptab > *(ptab+1))
{
temp = *(ptab+1);
*(ptab+1) = *ptab;
*ptab = temp;
}
}
}
}
}
void affiche (short *ligne, short *colonne, char *ptab)
{
short i, j;
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
printf ("%c ",*ptab);
}
printf ("\n");
}
}
Voilà mon problème, je dois créer un tableau de caractères et les trier par ordre croissant mais quand je dois afficher le tableau il n'y a que des espaces qui s'affichent.
Merci d'avance.
voici mon code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void tailletab (short *, short *, char *);
void occurrence (short *, short *, char *, char *);
void sequence (char *, short *, short *, char *);
void tric (char *, short *, short *);
void affiche (short *, short *, char *);
void main (void)
{
short ligne, colonne;
char tab[10][10], lettre;
srand((int)time(NULL));
tailletab (&ligne, &colonne, &tab[0][0]);
occurrence (&ligne, &colonne, &tab[0][0], &lettre);
sequence (&tab[0][0], &ligne, &colonne, &lettre);
tric (&tab[0][0], &ligne, &colonne);
affiche (&ligne, &colonne, &tab[0][0]);
system ("pause");
}
void tailletab (short *ligne, short *colonne, char *ptab)
{
short i, j;
do
{
printf ("Combien de lignes voulez-vous utiliser dans le tableau (1 - 10) ? : ");
fflush(stdin);
scanf ("%hd", ligne);
printf ("\n");
}
while (*ligne < 1 || *ligne > 10);
do
{
printf ("Combien de colonnes voulez-vous utiliser dans le tableau (1 - 10) ? : ");
fflush(stdin);
scanf ("%hd", colonne);
}
while (*colonne < 1 || *colonne > 10);
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
*ptab = rand()%(123-97)+97;
}
}
printf ("\nLe tableau est rempli de caracteres aleatoires...\n");
}
void occurrence (short *ligne, short *colonne, char *ptab, char *lettre)
{
short i, j, cpt=0;
do
{
printf ("\nEncodez une lettre : ");
fflush(stdin);
*lettre = getchar();
}
while (*lettre < 'a' || *lettre > 'z');
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
if (*ptab == *lettre)
{
cpt++;
}
}
}
if (cpt != 0)
{
printf ("\nLa lettre %c apparait %hd fois dans le tableau.\n", *lettre, cpt);
}
else
{
printf ("\nLa lettre %c ne se trouve pas dans le tableau.\n", *lettre);
}
}
void sequence (char *ptab, short *ligne, short *colonne, char *lettre)
{
short i, j, cpt=0, cpt2=1, lig=-1;
do
{
printf ("\nEncodez une lettre : ");
fflush(stdin);
*lettre = getchar();
}
while (*lettre < 'a' || *lettre > 'z');
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
if (*ptab == *lettre)
{
cpt++;
if (cpt > cpt2)
{
cpt2 = cpt;
lig = i;
}
}
else
{
cpt = 0;
}
}
cpt = 0;
}
if (lig != -1)
{
printf ("\nLa lettre %c se trouve %hd fois d'affile sur la ligne %hd.\n\n", *lettre, cpt2, lig);
}
else
{
printf ("\nIl n'y a pas de sequence pour la lettre %c.\n\n", *lettre);
}
}
void tric (char *ptab, short *ligne, short *colonne)
{
short i, j, cpt;
char temp;
for (cpt=(*ligne)*(*colonne);cpt>0;cpt--)
{
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne-1;j++,ptab++)
{
if (*ptab > *(ptab+1))
{
temp = *(ptab+1);
*(ptab+1) = *ptab;
*ptab = temp;
}
}
}
}
}
void affiche (short *ligne, short *colonne, char *ptab)
{
short i, j;
for (i=0;i<*ligne;i++)
{
for (j=0;j<*colonne;j++,ptab++)
{
printf ("%c ",*ptab);
}
printf ("\n");
}
}
A voir également:
- C tableau problème
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide