Bonjour !

Un jeune étudiant m' a demandé de lui écrire un programme et de lui expliquer le code ligne par ligne. Ce que j' ai fait. Mais en Java. Je ne savais pas que le langage qu' il apprend c' était le C.

Voici donc ce programme qui marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
// Ecrire un programme  qui étant donné deux tableaux, mets les éléments de ces 2 tableaux dans un troisième en les classant par ordre croissant.
// Afficher les éménts de ce troisième tableau pour vérifier.
 
public class TestTableaux
{
 
	public static void main (String [] args)
	{
 
		int [] tablo1 = {1,3,5,7,9,11,13};
 
		int [] tablo2 = {-2,0,2,4,6,8,10,12,14,};
 
		// 
		int tablo3 [] = new int [tablo1.length + tablo2.length];
 
		tablo3 = unionTabs(tablo1, tablo2);
		tablo3 = tabOrdCrois(tablo3);
 
		afficheTableau(tablo3);
	}
 
	// fonction qui, étant donné un tableau de nombres entiers, affiche les éléments de ce tableau
	public static void afficheTableau(int [] tab)
	{
		for(int i = 0; i < tab.length; i++)
		{
			System.out.print(tab[i] + ", ");
		}
	}
 
 
	//  fonction qui, étant donné deux tableaux de nombres entiers, rend un tableau dont les éléments sont ceux du premier suivis de ceux de deuxième.
	public static int [] unionTabs(int [] tab1, int [] tab2)
	{
		int n = tab1.length + tab2.length;
		int [] tab = new int [n];
 
		for(int i = 0; i < tab1.length; i++)
		{
			tab[i] = tab1[i];
		}
 
		for(int i = tab1.length; i < n; i++)
		{
			tab[i] = tab2[i - tab1.length];
		}
		return tab;
	}
 
	// fonction qui, étant donné un tableau de nombres entiers, retourne le même tableau avec les valeurs classés dans l' ordre croissant
	public static int [] tabOrdCrois(int [] tab)
	{
		boolean verite;
		do
		{
			verite = false;
			for(int i = 0; i < (tab.length - 1); i++)
			{
				if(tab[i] > tab[i+1])
				{
					int tampon = tab[i];
					tab[i] = tab[i+1];
					tab[i+1] = tampon;
					verite = true;
				}
			}
		}
		while(verite);
		return tab;
 
	}
 
 
}


Si quelqu' un connait le C et le Java, j' aimerais qu' il me traduise ce programme en C.

Pas besoin de commentaires. Je crois que je comprendrais si on traduit le programme en créant les mêmes fonctions. En suivant les mêmes étapes.

Merci d' avance!