Resultat med decimal tal

Tags:    c++

Hej.

Jeg er lige startet på at lære C++, og er stødt på et problem.
Jeg er ved at lave et program der skal kunne gøre flg.:
Der skal indtastes en værdi i heltal. Derefter skal den kunne multiplicere tallet med 2,5. Jeg prøvet med en masse foreskellige ting uden held. Nedenfor er mit lidt rodet program. (Med mange printf. Men det er for at jeg kan se om værdien er set rigtigt.) Nogen der kan hjælpe??
Tilføjet: Ved fejl har jeg ikke fået sat point på. Beklager..

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>

double x;
double sumx;
double val = 2.5;


void indtast_antal_x()
{

printf("\\nIndtast antal x: ");
scanf("%d" , &x);
printf("\\nX er : %d", x);
sumx = x * val;
printf("\\nSum af X er : %d", sumx);
}


int main()
{
printf("\\nval_x er : %g", val);
indtast_antal_x();
getch();
}




Indlæg senest redigeret d. 10.03.2007 12:20 af Bruger #11496
Hej.

Jeg er lige startet på at lære C++, og er stødt på et problem.
Jeg er ved at lave et program der skal kunne gøre flg.:
Der skal indtastes en værdi i heltal. Derefter skal den kunne multiplicere tallet med 2,5. Jeg prøvet med en masse foreskellige ting uden held. Nedenfor er mit lidt rodet program. (Med mange printf. Men det er for at jeg kan se om værdien er set rigtigt.) Nogen der kan hjælpe??
Tilføjet: Ved fejl har jeg ikke fået sat point på. Beklager..

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>

double x;
double sumx;
double val = 2.5;


void indtast_antal_x()
{

printf("\\nIndtast antal x: ");
scanf("%d" , &x);
printf("\\nX er : %d", x);
sumx = x * val;
printf("\\nSum af X er : %d", sumx);
}


int main()
{
printf("\\nval_x er : %g", val);
indtast_antal_x();
getch();
}


tror jeg selv fandt ud af det. På denne måde. Muligvis min printf der ikke udskrev det ordenligt. Brugte cout istedet.

Hilsen
Per



Hvad er fejlen lige? Er der ikke noget decimaler med? Jeg må dog indrømme at printf ikke er en del af C++'s STL :) Den du bruger er fra C library. Men du kan med cout sætte den præcision.



Din fejl hvar at du udskrev som %d i printf().

%d er til int variabler.
Kan dog ikke lige huske hvad det ellers er, men også ligemeget når du valgte cout istedet



Men du kan med cout sætte den præcision.


Det er rigtigt at printf ikke er C++ måden at udskrive, men man kan altså også sætte præcision med printf:
Fold kodeboks ind/udKode 

...giver følgende:
Fold kodeboks ind/udKode 




Hej.

Min fejl var nemlig det printf.

Jeg har brugt cout i stedet for. Det virker.

Tak for jeres svar. Det er fedt med den gode og hurtig hjælp.

Per

PS. Hvordan lukker jeg denne tråd? (Er total newbee!)



Følgende kan måske være en hjælp så du kan se hvilke parametre du kan anvende.

Bemærk linierne:

/* Format and print various data: */
j = sprintf( buffer, "\\tString: %s\\n", s );
j += sprintf( buffer + j, "\\tCharacter: %c\\n", c );
j += sprintf( buffer + j, "\\tInteger: %d\\n", i );
j += sprintf( buffer + j, "\\tReal: %f\\n", fp );

Fold kodeboks ind/udKode 


Hth



t