ajout du dernier exercice non fonctionnel
This commit is contained in:
93
TriSpecial.c
Normal file
93
TriSpecial.c
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int racineCarree(float nombre) {
|
||||||
|
int pasDeRacine = -1;
|
||||||
|
for(int i = 1; i<nombre-1; i++) {
|
||||||
|
if(nombre/i == i) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pasDeRacine;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sommeTableau(float tab[], int tablength) {
|
||||||
|
int somme = 0;
|
||||||
|
for (int i = 0; i < tablength; i++) {
|
||||||
|
somme=somme+tab[i];
|
||||||
|
}
|
||||||
|
return somme;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sommeRacineCarreetableau(float tab[], int tablength) {
|
||||||
|
int somme = 0;
|
||||||
|
for (int i = 0; i < tablength; i++) {
|
||||||
|
somme = somme + racineCarree(tab[i]);
|
||||||
|
}
|
||||||
|
return somme;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TypeDeTri(float tab[], int tablength) {
|
||||||
|
int numeroTri, nombreRacineNonEntiere = 0;
|
||||||
|
for (int i = 0; i < tablength; i++) {
|
||||||
|
if (racineCarree(tab[i]) == -1) {
|
||||||
|
nombreRacineNonEntiere++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (nombreRacineNonEntiere % 2 == 0) {
|
||||||
|
numeroTri = 0;
|
||||||
|
}
|
||||||
|
else numeroTri = 1;
|
||||||
|
|
||||||
|
return numeroTri;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriSpecial(float tab[], int tablength) {
|
||||||
|
float tabApresTri[tablength];
|
||||||
|
TypeDeTri(tab, tablength);
|
||||||
|
|
||||||
|
if (TypeDeTri == 0) {
|
||||||
|
int somme = sommeTableau(tab, tablength);
|
||||||
|
printf("[ ");
|
||||||
|
for (int i = 0; i < tablength; i++) {
|
||||||
|
if (i%2 == 0) {
|
||||||
|
tabApresTri[i] = tab[i];
|
||||||
|
}
|
||||||
|
else tabApresTri[i] = tab[i]*somme;
|
||||||
|
printf("%f, ", tabApresTri[i]);
|
||||||
|
}
|
||||||
|
printf(" ]");
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
int somme = sommeRacineCarreetableau(tab, tablength);
|
||||||
|
printf("[ ");
|
||||||
|
for (int i = 0; i < tablength; i++) {
|
||||||
|
if (i%2 == 0) {
|
||||||
|
tabApresTri[i] = racineCarree(tab[i]);
|
||||||
|
}
|
||||||
|
else tabApresTri[i] = tab[i]*somme;
|
||||||
|
printf("%f, ", tabApresTri[i]);
|
||||||
|
}
|
||||||
|
printf(" ]");
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int tablength, nombre;
|
||||||
|
printf("Combien d'éléments souhaitez-vous mettre dans votre tableau ? \n");
|
||||||
|
scanf("%d", tablength);
|
||||||
|
|
||||||
|
float tab[tablength];
|
||||||
|
printf("Donnez les nombres : \n");
|
||||||
|
|
||||||
|
for (int i = 0; i < tablength; i++) {
|
||||||
|
scanf("%f", &nombre);
|
||||||
|
tab[i] = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
TriSpecial(tab, tablength);
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user