Question sur un tableau à plusieur dimension en C

Fermé
mickmac Messages postés 413 Date d'inscription jeudi 25 août 2011 Statut Membre Dernière intervention 15 août 2019 - 21 oct. 2012 à 18:55
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 22 oct. 2012 à 15:53
Bonjour,
Bonjour,
J'ai un tableau de 7*7(Je parle en langage C) donc creer grâce à
char Tab [10][10]
Ensuite je rentre des vleurs dans ce tableau
Et je voudrais savoir comment je doit m'y prendre pour faire un Test qui renvoie Vrai si le tableau est plein(donc plus aucun zéro.

Je pense qu'il faut faire une boucle mais je n'ai pas encore vu comment marché un tableau à plusieurs dimensions
dois je faire une boucle avec i et j deux variables je creer un a initialisé à zéro auparavant comme celà?
for(i=0;i<=7;i++)
{
for(j=0;j<=7,j++)
{
if(Tab[i][j]=0)
a++;}
}
}
}
if (a=0)
{ printf("Vrai");}

Merci de votre réponse



3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 oct. 2012 à 19:07
C'est pas trop mal, à part que les comparaisons se font avec == pas avec =

Mais ce n'est pas nécessaire d'initialiser tes cases à 0 si tu saisis déjà des valeurs dans les cases avant de faire ton test.

Remarque : un tableau 7x7 ça se fait entre i=0 et i<7 (pas i<=7)
0
mickmac Messages postés 413 Date d'inscription jeudi 25 août 2011 Statut Membre Dernière intervention 15 août 2019 6
21 oct. 2012 à 19:27
Ok merci beaucoup Oui en effet pour le ==
Par contre pour le i<7 j'avais pas remarqué merci
Une autre question aussi qui n'a pas grand chose à voir

int i=0;
int valeur;
scanf("%d",&valeur);
switch(valeur)
{
case 1 : i++;

case 2 : i=2;

case 3 : i=++valeur;

default : i=(valeur>3?0:10);

C'est pour un td Je doit dire ce que renvoie i dans les cas ou valeur = 0 puis 1 puis 2 puis 3 puis 4 puis 5
pour 1 ça fait 1
pour 2 ça fait 2
pour 3 je pense que ça fait i+valeur=3
mais pour les autres cas, on utilise i=(valeur>3?0:10);
Mais je sais absolument pas ce que ça veut dire Dans le cours c'est pas marqué

Pouvez vous m'aider s'il vous plait
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 oct. 2012 à 20:20
C'est l'opérateur ternaire, ces deux codes sont équivalents :

i = valeur>3 ? 0 : 10;

if (valeur>3)
    i = 0;
else
    i = 10;
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 oct. 2012 à 21:34
Attention, à utiliser des break; dans ton switch pour chacun de tes cases...
0
mickmac Messages postés 413 Date d'inscription jeudi 25 août 2011 Statut Membre Dernière intervention 15 août 2019 6
22 oct. 2012 à 12:36
Aussi je doit faire une procédure qui a partir d'un tableau de lettre minuscule calcule la fréquence d'apparition de chaque caractère du tableau et la stock dans un nouveau tableau freq['a',...,'z']

Moi j'avais fait un programme qui rent quand on tape un caractère combien de fois on vois se caractère


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int nb_occ(char Tab, char caractère)
int c,nboccurence = 0,
size = strlen(chaine);

for (c = 0 ; c < size ; c++)
{
if (chaine[c] == caractère)
nboccurence ++;
}

return nboccurence;
}

Et quand o l'utilise avec le main(je remplace le tableau par .... car on avait crée une fonction pour que l'utilisateur puisse le remplir

int main()
{
char Chaine[] =.....
int nb = nb_occurence(Chaine,'a');
printf("La chaine : '%s' contient %d fois le caractère 'a'.\n", Chaine,nb);

return 0;
}


Mais mon prof à dit que c'était pas ça qu'on voulais;d'ailleur il a pas tord
Mais je vois pas trop comment faire en faite

peut etre

void fréquence(table[],freq[])
{
int i=0
int j=0
int a=0
int b=0

for (j=97;j<=123;j++)
{
for(i=0;i<cpt,i++) //cpt c'est la taille de table[] on l'vait crer avant//
{
while(table[i]%j)
{ a++
}
}
freq[c]=a
c++
i=0
a=0
}

Est ce que ça marche? Il y a t-il plus économique?

Merci
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 22/10/2012 à 16:09
"une procédure qui a partir d'un tableau de lettre minuscule calcule la fréquence d'apparition de chaque caractère du tableau"

Un bon début serait déjà de faire cette procédure, ce que je n'ai pas vu dans ton code (qui ne ressemble que très vaguement à du C)

void frequence(int freq[256], char tableau[], int tailleTableau);
0