bonjour à tous,
je suis bloqué sur une erreur "error C2059: syntax error : 'type'" dans ma fonction max, Elle est pourtant identique à la fonction somme. pouvez-vous m'eclairer sur ce point ?
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include<stdio.h>
#include<stdlib.h>
#include"termine.h"
#define NB_ELEM_MAX 100
 
/********************************************************************/
/* Exercices sur les Tableaux Strohecker guillaume le 11/03/2008    */
/********************************************************************/
 
 
/* Sujet : Ecrire une fonction qui prends en parametre
   un tableau d'entiers et son nombre d'élément, et qui 
   affiche les éléments d'indice impair.               */
 
 
 
void afficheImpair(int tab[NB_ELEM_MAX], int taille){
	int i;
	for (i = 1; i < taille; i += 2)
		printf("tab[%d] = %d\n",i , tab[i]);
}
 
 
/* Sujet : Ecrire une fonction qui prends en parametre
   un tableau d'entiers etcalcule le maximum de tous 
   les éléments du tableau                           */
 
int max(int tab[NB_ELEM_MAX], int taille){
	int i;
	int maxi = tab[0];
	for (i = 1; i < taille; i++){
		if (maxi < tab[i])
			maxi = tab[i];
	}
	return maxi;
}
 
 
/* Sujet : Ecrie une fonction qui prend en parametre un tableau
	d'entiers et qui calcule la somme des éléments          */
 
int somme(int tab[NB_ELEM_MAX], int taille){
	int i;
	int somme = tab[0];
	for (i = 1; i < taille; i++)
		somme += tab[i];
	return somme;
}
 
/* Sujet : Ecrire une fonction qui prend en parametre un tableau
	d'entiers, son nombre d'élements n et un entier m, et qui
	retourn 1 s'il y a un element égal à m dans la tableau, 0
	sinon, le type de retour de la fonction doit etre char  */
 
char recherche(int tab[NB_ELEM_MAX], int taille, int m){
	int i;
	for (i = 1; i < taille; i++){
		if(tab[i] == m)
			return 1;
	}
	return 0;
}
 
/* Sujet : Ecrire une fonction qui prend en parametre un tableau
	de taille NB_MAX, son nombres d'élément n < NB_MAX, un entier
	i <=n et un entier m. la fonction doit insérer m en position i
	dans le tableau sans supprimer d'élémnt                       */
 
void insertion(int tab[NB_ELEM_MAX], int taille, int i, int m){
	int j = taille;
	while (j > i){
		tab[j] = tab[j-1];
		j--;
	}
	tab[i] = m;
}
 
/* Sujet : 
	a) Ecrire une fonction qui initialise chaque élément tab[i]
	passé en parametre à la valeur 2 puissace i                */
 
 
void initialisation(unsigned int tab[NB_ELEM_MAX], int taille){
	int i = 1;
	tab[0] = 1;
	while ( i < taille){
		tab[i] = tab[i - 1] * 2;
		i++;
	}
}
 
 
/* b) En utilisant a) écrire une fonction qui lit au clavier des caractères 
	égaux  à 0 ou 1 et calcule le nombre que ses chiffre représente en binaire. on pourra faire afficher en base 10 
	le resultat */
 
void clavier(unsigned int tab[NB_ELEM_MAX], int taille){
	char c;
	int choix, i = 0;
	unsigned int n;
	initialisation(tab, taille);
	while(!0){
		choix = 0;
		puts("Entrer 0 ou 1 :");
		while(!choix){
			c = getchar();
			choix = ((c == '0') || (c == '1'));
		}
		if (c == '1')
			n += tab[i];
		i++;
		printf("Valeur courante : %d\n", n);
	}
}
 
/* FONCTION DE SAISIE DE TABLEAU */
 
int SaisieTableau(int tab[NB_ELEM_MAX]){
	int taille, i;
	puts("Saisir le nombre d'elements du tableau :");
	scanf("%d", &taille);
	if(taille > NB_ELEM_MAX)
		termine("Erreur !!! Le tableau est trop petit");
	puts("Saisir les elements du tableau");
	for(i = 0; i < taille; i++)
		scanf("%d", &tab[i]);
	return taille;
}
/* FONCTION QUI AFFICHE LE TABLEAU */
 
void affiche(int tab[NB_ELEM_MAX], int taille){
	int i;
	for (i = 0; i < taille; i++)
		printf("tab[%d] = %d\n",i , tab[i]);
}
 
/* PROGRAMME TEST */
 
int main(void){
	int taille,tab[NB_ELEM_MAX], valeur_max, valeur_totale;
	int m = 7;
	taille = SaisieTableau(tab);
	afficheImpair(tab, taille);
	printf("La  valeur totale des elements du tableau est : %d\n", valeur_totale=somme(tab, taille));
	printf("La  plus grande valeur du tableau est : %d\n", valeur_max=max(tab,taille));
	if(recherche(tab, taille, m))
		puts("Trouve!");
	else{
		puts("Pas Trouve!");
		insertion(tab, taille, 1, m);
		affiche(tab, taille);
	}
	puts("initialisation.......");
	initialisation(tab, taille);
	affiche(tab, taille);
	clavier(tab, taille);
	return 0;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
/*termine.h 12/03/08*/
 
#ifndef TERMINE_H
#define TERMINE_H
void termine(char*telMessage);
#endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
/*termine.c 12/03/08 */
 
#include<stdio.h>
#include<stdlib.h>
#include"termine.h"
 
void termine(char*telMessage){
	printf("erreur %s\n",telMessage);
	exit(0);
}/*termine*/