« Exercices en langage C/Tableaux statiques » : différence entre les versions
Contenu supprimé Contenu ajouté
→position d'un élément dans un tableau : source +simple |
Ajout Exercice parcours de tableau. |
||
Ligne 1 : | Ligne 1 : | ||
{{Exercices en langage C}} |
{{Exercices en langage C}} |
||
== |
== Parcours d'un tableau == |
||
Écrire un programme nommé argv.c qui affiche : |
|||
* son nom de lancement (argv[0]); |
|||
* le nombre des ces arguments; |
|||
* la valeur de chaque argument reçu. |
|||
'''Rappels''' : |
|||
La fonction main d'un programme C reçoit en argument : |
|||
* un entier '''argc''' indiquant le nombre d'élément du tableau argv; |
|||
* un tableau de chaines de caractère '''argv''' avec : |
|||
** argv[0] : Nom d'appel du programme. |
|||
** argv[i] : Valeur de l'argument de rang i. |
|||
<div style="width:70%">{{Boîte déroulante|titre=Solution|contenu = |
|||
Le fichier source en c99 : |
|||
<source lang="c"> |
|||
/* |
|||
Nom : argv.c |
|||
Auteur : Thierry46 |
|||
Role : Affiche le nom de lancement du programme |
|||
le nombre et les valeurs des paramètres passés passés à ce programme. |
|||
Paramètres : |
|||
- argc : nombre de paramètres |
|||
- argv : tableau de chaine de caractere contenant les parametre |
|||
Code retour : 0 (EXIT_SUCCESS) |
|||
Pour produire un exécutable avec le compilateur libre GCC : |
|||
gcc -Wall -std=c99 -o argv.exe argv.c |
|||
Pour exécuter, tapez : ./argv.exe |
|||
Version : 1.0 du 16/1/2008 |
|||
Licence : GNU GPL |
|||
*/ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
int main(int argc, char *argv[]) |
|||
{ |
|||
// Affiche le nom de lancement du programme |
|||
(void)printf("Nom d'appel du programme (argv[0]) : %s\n", argv[0]); |
|||
// Affiche le nombre de parametre passe au programme |
|||
(void)printf("Nombre de parametre passe au programme : %d\n", argc-1); |
|||
// Affiche la valeur des parametres |
|||
for (int i=1; i<argc; i++) |
|||
{ |
|||
(void)printf("Parametre %d : %s\n", i, argv[i]); |
|||
} |
|||
return EXIT_SUCCESS; |
|||
} // int main(... |
|||
</source> |
|||
<pre> |
|||
MacMini-TM:~/Documents/developpement/c thierry$ gcc -Wall -std=c99 -o argv.exe argv.c |
|||
MacMini-TM:~/Documents/developpement/c thierry$ ./argv.exe dudule 1 |
|||
Nom d'appel du programme (argv[0]) : ./argv.exe |
|||
Nombre de parametre passe au programme : 2 |
|||
Parametre 1 : dudule |
|||
Parametre 2 : 1 |
|||
</pre> |
|||
}}</div> |
|||
== position d'un élément dans un tableau == |
== position d'un élément dans un tableau == |
Version du 16 janvier 2008 à 10:07
Parcours d'un tableau
Écrire un programme nommé argv.c qui affiche :
- son nom de lancement (argv[0]);
- le nombre des ces arguments;
- la valeur de chaque argument reçu.
Rappels : La fonction main d'un programme C reçoit en argument :
- un entier argc indiquant le nombre d'élément du tableau argv;
- un tableau de chaines de caractère argv avec :
- argv[0] : Nom d'appel du programme.
- argv[i] : Valeur de l'argument de rang i.
Solution
Le fichier source en c99 :
/*
Nom : argv.c
Auteur : Thierry46
Role : Affiche le nom de lancement du programme
le nombre et les valeurs des paramètres passés passés à ce programme.
Paramètres :
- argc : nombre de paramètres
- argv : tableau de chaine de caractere contenant les parametre
Code retour : 0 (EXIT_SUCCESS)
Pour produire un exécutable avec le compilateur libre GCC :
gcc -Wall -std=c99 -o argv.exe argv.c
Pour exécuter, tapez : ./argv.exe
Version : 1.0 du 16/1/2008
Licence : GNU GPL
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// Affiche le nom de lancement du programme
(void)printf("Nom d'appel du programme (argv[0]) : %s\n", argv[0]);
// Affiche le nombre de parametre passe au programme
(void)printf("Nombre de parametre passe au programme : %d\n", argc-1);
// Affiche la valeur des parametres
for (int i=1; i<argc; i++)
{
(void)printf("Parametre %d : %s\n", i, argv[i]);
}
return EXIT_SUCCESS;
} // int main(...
MacMini-TM:~/Documents/developpement/c thierry$ gcc -Wall -std=c99 -o argv.exe argv.c MacMini-TM:~/Documents/developpement/c thierry$ ./argv.exe dudule 1 Nom d'appel du programme (argv[0]) : ./argv.exe Nombre de parametre passe au programme : 2 Parametre 1 : dudule Parametre 2 : 1
position d'un élément dans un tableau
Ecrire une fonction qui donne l'indice d'un élément x donné dans un tableau, ou -1 si x n'est pas dans le tableau.
Le tableau contiendra des éléments de type int, la fonction retournera une valeur de type int.
Solution
Le fichier source prêt à compiler :
#include <stdio.h>
int position (int t[], int taille, int x)
{
while (taille > 0)
{
--taille;
if (t[taille] == x)
return taille;
}
return -1;
}
int main(void)
{
int tableau[] = { 2, 5, 45, 3, 9 };
int x;
printf("x ? ");
scanf("%d", &x);
printf("La position de x est : %d\n", position(tableau, 5, x));
return 0;
}