webForumDet fria alternativet

C++-program som inte fungerar! (nybörjare...)

C/C++

22 svar · 534 visningar · startad av trexter · sida 2 av 2

Frågan, av trexter

Skulle någon kunna skriva om detta lilla program så att det fungerar? Så kan jag fråga om det är några förändringar jag ej förstår... include <iostream> include <string> using namespace std; int main () { string Name; int age; cout << "Skriv in ditt namn:" << endl; cin >> Name >> endl; cout << "Skriv in din alder:" << endl; cin >> Age >> endl; cout << "Du är" << Age << "ar

Läs frågan i sin helhet →
Medlem sedan maj 20002 993 inlägg
#21

Om du nödvändigt vis vill pausa programmet just innan det avslutas så att du slipper öppna det i ett cmd fönster kan du lägga till detta precis innan return 0;

system("paus");

Medlem sedan mars 20021 889 inlägg
#22

Hur gör man för att kolla om en "float" variabel har blivit tilldelat ett "float" värde av användaren?

Så här ser mitt program ut nu:

#include <iostream>
using namespace std;

int main () {
float tal;
float summa;
summa = 0.0;

	for (int i = 1; true; i++) 
	{
		cout << "Skriv in ett tal!";
		cin >> tal;

		if ( tal == 0) {
        break;
		}

		summa = summa + tal;
		cout << "Du har skrivit in " << i << " olika tal.\n";
		cout << "Summan av dessa \x84r: " << summa << ".\n";
		cout << "Medelv\x84rdet av dessa tal \x84r: " << summa/i << ".\n\n";
	}
return 0;
}

:)

Medlem sedan mars 20034 471 inlägg
#23

trexter skrev:

Hur gör man för att kolla om en "float" variabel har blivit tilldelat ett "float" värde av användaren?

Så här ser mitt program ut nu:

#include <iostream>
using namespace std;

int main () {
float tal;
float summa;
summa = 0.0;

	for (int i = 1; true; i++) 
	{
		cout << "Skriv in ett tal!";
		cin >> tal;

		if ( tal == 0) {
        break;
		}

		summa = summa + tal;
		cout << "Du har skrivit in " << i << " olika tal.\n";
		cout << "Summan av dessa \x84r: " << summa << ".\n";
		cout << "Medelv\x84rdet av dessa tal \x84r: " << summa/i << ".\n\n";
	}
return 0;
}

:)

Det finns lite underligheter i ovanstående.

  • Vill du verkligen att summan mm ska skrivas ut i varje varv?
  • for-slingor används när man vet hur många varv man vill kirra runt, du borde använda en while-slinga i stället.

Bättre idé:

#include <iostream>
using namespace std;

int main () {
float tal = 3.14; // eller vad som helst != 0
float summa = 0.0;
int antal = 0;

	while (tal != 0) 
	{
                   cout << "Skriv in ett tal!";
	   cin >> tal;
	   summa = summa + tal;
                   antal++;
	}

	cout << "Du har skrivit in " << antal << " olika tal.\n";
                        << "Summan av dessa \x84r: " << summa << endline;
                cout << "Medelv\x84rdet av dessa tal \x84r: " << summa/antal << ".\n\n";
                return 0;
}

Eller, om du så vill flytta in utskriften i slingan.

cin kommer att vänta in ett tal tills den får något. Om du skriver in en sträng kommer du att få krasch, om du skriver in ett heltal kommer den att konvertera det till samma tal,0 (ex. 7 --> 7,0) alltså inget du behöver bekymmra dig om.

269 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)