J'apprends le C de base pour un cours de programmation d'introduction que je prends et j'ai deux questions liées au code ci-dessous.Programmation C: pourquoi mes décimales ne s'affichent pas et comment puis-je définir des espaces noirs
Première: dans la section //calculations
, je veux que mes valeurs appelées cryr1
, cryr2
, cryr3
et avgcr
, pour afficher les résultats sur 2 décimales. Je ne reçois que des nombres entiers avec 2 décimales. QUESTION: Y a-t-il quelque chose qui ne va pas dans la façon dont j'ai écrit mes calculs? Deuxièmement: dans la section où j'ai toutes mes instructions printf
, j'ai beaucoup d'espaces blancs vides pour prendre en charge l'espacement dans la table que je veux rendre. Cependant, si les entrées de cette sortie varient en longueur numérique, les colonnes ne sont pas affichées correctement. QUESTION: Existe-t-il un code ou une syntaxe que je devrais utiliser pour calculer ou déterminer le nombre d'espaces que chaque valeur du tableau affiche?
// Global Variable declarations
FILE *reportfile; // report file (for output)
FILE *inputfile; // disk file (for input)
char company[31]; // company name
int assetsyr1; // assets year 1
int assetsyr2; // assets year 2
int assetsyr3; // assets year 3
int liabilitiesyr1; // liabilties year 1
int liabilitiesyr2; // liabilties year 2
int liabilitiesyr3; // liabilities year 3
float cryr1; // current ratio yr1
float cryr2; // current ratio yr2
float cryr3; // current ratio yr3
float avgassets; // average assets
float avgliabilities; // average liabilities
float avgcr; // average current ratio
//calculations
cryr1 = (assetsyr1/liabilitiesyr1);
cryr2 = (assetsyr2/liabilitiesyr2);
cryr3 = (assetsyr3/liabilitiesyr3);
avgassets = (assetsyr1 + assetsyr2 + assetsyr3)/3;
avgliabilities = (liabilitiesyr1 + liabilitiesyr2 + liabilitiesyr3)/3;
avgcr = (cryr1 + cryr2 + cryr3)/3;
printf("%s\Current Ratio Report\n\n", company);
printf(" Current Current Current\n");
printf("Year Assets Liabilities Ratio\n");
printf("----------------------------------------------------------\n");
printf("2010 %d %d %1.2f\n", assetsyr1, liabilitiesyr1, cryr1);
printf("2011 %d %d %1.2f\n", assetsyr2, liabilitiesyr2, cryr2);
printf("2012 %d %d %1.2f\n", assetsyr3, liabilitiesyr3, cryr3);
printf("----------------------------------------------------------\n");
printf("Average %1.0f %1.0f %1.2f\n\n", avgassets, avgliabilities, avgcr);
L'image est censée rendre comme celui-ci
Toute aide que vous pouvez offrir est très apprécié. Merci, David
J'ai placé le code source et le fichier d'entrée here
Veuillez copier-coller votre sortie actuelle et la sortie désirée ** comme texte **, et assurez-vous que votre code est un [mcve] - le ** plus court possible ** code quelqu'un d'autre peut courir pour voir le problème lui-même. ("Quelqu'un d'autre peut fonctionner" signifie aussi qu'il doit être suffisamment complet pour fonctionner - typiquement, cela signifie que vous pourriez vouloir coder les valeurs plutôt que de les lire depuis un fichier, car les gens qui veulent tester leurs réponses n'auront généralement pas ce fichier d'entrée à portée de main). –
https://www.codingunit.com/printf-format-specifiers-format-conversions-and-formatted-output Ceci vous aidera à formuler votre sortie. – Mare70
@davidw shaun répondre ll résoudre vos problèmes, vous devez lancer pour flotter en premier. – Mare70