Vous n'êtes pas identifié.
Salut tout le monde!
Voilà le code:
#include "conio.h" #include "stdio.h" float size_total,size_one,size_left; // Les tailles considérées. int percent,down_rate; // Variables. long time_left[12],time_h[12],time_m[12],time_s[12]; // Les temps (time_left -> en secondes). void calc() // Calcul les durées et les tailles. { size_one=size_total/100; // 1% = xMo. size_left=size_total-(size_one*percent); // Nombre de Mo restant à d/l. for(down_rate=1;down_rate!=13;down_rate++) // Calcul des durées suivant le bitrate (varie de 1 à 13 ko/s). { time_left=(size_left*1000)/down_rate; time_h[down_rate]=time_left/3600; time_m[down_rate]=(time_left-((time_h[down_rate])*3600))/60; time_s[down_rate]=(time_left-(((time_h[down_rate])*3600)+((time_m[down_rate])*60))); }; }; void main() // Fonction principale. { clrscr(); // Efface l'écran. printf("Enter total files size: "); // Taille totale du fichier à télécharger. scanf("%f",&size_total); printf("nEnter current percent: "); // % du fichier déjà d/l. scanf("%d",&percent); calc(); // Effectue les calculs. clrscr(); // On re-efface l'écran. printf("Total files size: %.1f MBn",size_total); // Rappelle des données. printf("1/100 size: %.2f MBn",size_one); printf("Current percent: %d%n",percent); printf("Left to download: %.1f MBnn",size_left); printf("Time left:n"); // Tableau des temps en fonction du downrate. printf("+----+----------+n"); for(down_rate=1;down_rate!=13;down_rate++) // Affichage ligne par ligne. { printf("| %2d kB/s | %2d:%2d:%2d |n",down_rate,time_h[down_rate],time_m[down_rate],time_s[down_rate]); }; printf("+----+----------+n"); printf("nnnPress a key to finish..."); // Attente... while(kbhit()!=-1); // OK! exit(1); // On ferme. };
Les erreurs:
Error h:g100devdowndown.c 14: Illegal use of floating point in function calc Error h:g100devdowndown.c 15: Illegal use of pointer in function calc Error h:g100devdowndown.c 16: Illegal use of pointer in function calc Error h:g100devdowndown.c 17: Nonportable pointer conversion in function calc
Ca concerne donc les lignes suivantes de la fonction calc():
time_left=(size_left*1000)/down_rate; time_h[down_rate]=time_left/3600; time_m[down_rate]=(time_left-((time_h[down_rate])*3600))/60; time_s[down_rate]=(time_left-(((time_h[down_rate])*3600)+((time_m[down_rate])*60)));
Maintenant la question: Ils sont où les pointeurs qu'il me dit incorrecte???
Au départ, c'était une connerie, maintenant, c'est une source d'énervement, je ne pige pas pourquoi ça marche pas...
Hors ligne
euh
je voudrais bien t' aider, mais je vais pas chercher la ligne ou s' est alors que le compilo te l' indique!
Hors ligne
X-Thunder28 -> Oups! Désolé! J'ai pas tout collé, et j'ai pas tout vérifié avant de poster...
C@siomax -> "un peu mal vu" => Pourquoi? C'est moi qui l'ai fait, et je me fiche qu'on me prenne le code!
Le post a été édité...
Hors ligne
Merde! Je viens de m'apercevoir que mon code était bordélique...
Je re-éditerai le post quand j'aurais mis un peu d'ordre...
Hors ligne
timeleft:il s' agit d' un tableau :
long time_left[12]
Or on voit ceci:
time_left=(size_left*1000)/down_rate;
time_h[down_rate]=time_left/3600;
time_m[down_rate]=(time_left-((time_h[down_rate])*3600))/60;
time_s[down_rate]=(time_left-(((time_h[down_rate])*3600)+((time_m[down_rate])*60)));
Enfin bref une utilisation en variable, alors que tu met le nom du tableau entier timeleft! Il faut mettre timeleft[X] ou X est l' élement de la case X du tableau.
"Error h:g100devdowndown.c 17: Nonportable pointer conversion in function calc"
time_s[down_rate]=(time_left-(((time_h[down_rate])*3600)+((time_m[down_rate])*60)));
Meme remarque qu' au dessus!
Quand a cette erreur:
"Error h:g100devdowndown.c 14: Illegal use of floating point in function calc "
Elle est la parce que tu mélange floating point et entier!
Voila
Hors ligne
Ca fonctionne... Un petit peu à moitié...
Je m'explique:
Les heures & les secondes s'affichent correctement, mais pas les minutes...
A chaque fois, c'est tel que time_m=0.
La ligne est bonne non?
Hors ligne
time_m[down_rate]=(time_left-((time_h[down_rate])*3600))/60;
Si on dévellope l' expression on obtien ca( en théorie, je supose que tous sont des floats ):
timeleft /60 - (time_h[down_rate])*60
C' est ce que tu veu ?
Apperement ca semble bon!
Je comprend pas pk ca bug!
(c un chrono le progr au fait?)
Hors ligne
Moi non plus je ne comprend pas...
Non, c'est pas un chrono (enfin, si l'on veut...)
J'utilise BitTorrent pour downloader de gros fichiers, et en général, il se plante dans le temps de téléchargement, alors j'ai fait ce programme pour avoir une idée du temps restant, sous forme de tableau, et suivant une vitesse variant de 1 à 13 ko/s.
Au départ, ça devait prendre 10 minutes... J'adore la programmation, on prend de ces fou-rires!
Hors ligne