Files
CONTROLE_DEV51_gentil/TriSpecial.c

94 lines
2.1 KiB
C
Raw Normal View History

#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);
}