Jeg kan ikke rigtig få dette til at virke. Jeg vil gerne have det sådan, at når den har udregnet resultatet, at den så spørger om man vil lave en beregning mereog hvis man så trykkede 1/j eller 2/n så hoppede tilbage til start/afslutter programmet.
Min kode ser således ud :
/* Opgave 2 - Temperatur */
#include <stdio.h> // Inkluderer denne standard fil #include <stdlib.h> // Inkluderer denne standard fil
void main(void) { // Program start
int temp,skala = 0,resultat;
system("cls");
printf("\t\tVelkommen til Nielsens temperatur omregner \n"); printf("\t\t\t\tV\x91lg beregner : \n\n\n"); printf("\t\t1 : Celcius til Fahrenheit! \n"); printf("\t\t2 : Fahrenheit til Celcius! \n"); printf("\t\t3 : Celcius til Kelvin! \n"); printf("\t\t4 : Celcius til Newton!");
scanf("%d" ,&skala);
printf("\t\tIndtast temperatur der skal omregnes: "); scanf("%d", &temp);
if (skala == 1) { printf("\t\tResultatet i Fahrenheit er : %d grader fahrenheit", (temp * 2) - (temp * 2 * 0,1) + 32); // Beregner og viser resultatet C til F }
if (skala == 2) { printf("\t\tResultatet i Celcius er : %d grader celcius", (temp - 32) * 5 / 9); // Beregner og viser resultatet F til C }
if (skala == 3) { printf("\t\tResultatet i Kelvin er : %d grader Kelvin", (temp + 273,15)); // Beregner og viser resultatet C til K }
if (skala == 4) { printf("\t\tResultatet i Newton er : %d Newton", (temp * 33 / 100)); // Beregner og viser resultatet C til N }
printf("\t\tVelkommen til Nielsens temperatur omregner\n"); printf("\t\t\t\tV\x91lg beregner :\n\n\n"); printf("\t\t1 : Celcius til Fahrenheit!\n"); printf("\t\t2 : Fahrenheit til Celcius!\n"); printf("\t\t3 : Celcius til Kelvin!\n"); printf("\t\t4 : Celcius til Newton!\n"); scanf("%d" ,&skala); fflush(stdin);
printf("\t\tIndtast temperatur der skal omregnes: "); scanf("%d", &temp); fflush(stdin);
switch(skala) { case 1: printf("\t\tResultatet i Fahrenheit er : %d grader fahrenheit\n\n", (temp * 2) - (temp * 2 * 0,1) + 32); break; case 2: printf("\t\tResultatet i Celcius er : %d grader celcius\n\n", (temp - 32) * 5 / 9); break; case 3: printf("\t\tResultatet i Kelvin er : %d grader Kelvin\n\n", (temp + 273,15)); break; case 4: printf("\t\tResultatet i Newton er : %d Newton\n\n", (temp * 33 / 100)); break; default: printf("\t\tUkendt konvertering\n\n"); } printf("Vil du fortsætte ?"); scanf("%c",&c); } while(c=='J' || c=='j'); return 0; }
jeg har: - sat do while løkken ind - skiftet de 4 if'er med en switch - ændret main fra void til int - bruger fflush på stdin for at undgå de problemer bertel påpeger
Der står i C standarden (det er det samme i C++): 7.19.5.2 The fflush function Synopsis #include <stdio.h> int fflush(FILE *stream); Description If stream points to an output stream or an update stream in which the most recent operation was not input, the fflush function causes any unwritten data for that stream to be delivered to the host environment to be written to the file; otherwise, the behavior is undefined.
Lidt hurtig googling siger at fflush vil returnere fejl på Linux, men at man til gengæld skulle kunne kalde en glibc specifik funktion __fpurge.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.