Vinnaren i pepparkakshustävlingen!
2016-09-02, 16:18
  #1
Medlem
Kod:
int main()
{
	int sum = 0, val1 = 0, val2 = 0;
	int a = 0, b = 0;

	cout << "Type two numbers, one low and one high." << endl;
	
	cin >> val1 >> val2;
	if (val1 >= val2)
	{
		val1 = b;
		val2 = a;
	}
	else
	{
		val1 = a;
		val2 = b;
	}
	while (a <= b)
	{
		sum += a;
		a++;
	}

	cout << "Each number in the range adds up to: " << sum << endl;
		return 0;
}
Den fungerade från början men då var jag tvungen och skriva in två tal där första var tvunget och va mindre än andra talet, så jag lade till if-satserna och a b, men får bara 0 i sum. Borde inte detta funka?
Citera
2016-09-02, 16:28
  #2
Medlem
svallerbyttans avatar
Varsågod:
Kod:
int main()
{
    
int sum 0val1 0val2 0;
    
int a 00;

    
cout << "Type two numbers, one low and one high." << endl;
    
    
cin >> val1 >> val2;
    if (
val1 >= val2)
    {
        
val1 b;
        
val2 a;
    }
    else
    {
        
val1 a;
        
val2 b;
    }
    while (
<= b)
    {
        
sum += a;
        
a++;
    }

    
cout << "Each number in the range adds up to: " << sum << endl;
        return 
0;


Felet är att a och b kommer ha värdet 0 under hela exekveringen. Du behöver kasta om variablerna i if-satsen. Ändra "val1 = b" till "b = val1" osv...
__________________
Senast redigerad av svallerbyttan 2016-09-02 kl. 16:35.
Citera
2016-09-02, 16:30
  #3
Medlem
Ahh okej, tack!
__________________
Senast redigerad av WhiteBuffalo 2016-09-02 kl. 16:35.
Citera
2016-09-02, 18:38
  #4
Moderator
RostigHinks avatar
Citat:
Ursprungligen postat av WhiteBuffalo
Kod:
int main()
{
	int sum = 0, val1 = 0, val2 = 0;
	int a = 0, b = 0;

	cout << "Type two numbers, one low and one high." << endl;
	
	cin >> val1 >> val2;
	if (val1 >= val2)
	{
		val1 = b;
		val2 = a;
	}
	else
	{
		val1 = a;
		val2 = b;
	}
	while (a <= b)
	{
		sum += a;
		a++;
	}

	cout << "Each number in the range adds up to: " << sum << endl;
		return 0;
}
Den fungerade från början men då var jag tvungen och skriva in två tal där första var tvunget och va mindre än andra talet, så jag lade till if-satserna och a b, men får bara 0 i sum. Borde inte detta funka?
I if-satsen tilldelar du val1 och val2 värdet av a och b som båda är noll. Vänd på de tilldelningarna, a = val1 etc.
Citera
2016-09-02, 22:14
  #5
Medlem
bithaxs avatar
Du kan byta ut while loopen mot en for.

Du kan även byta ut if satsen mot

Citat:

a = (val1 >= val2) ? val2 : val1;
b = (val1 >= val2) ? val1 : val2;


Men ingen bryr sig.
__________________
Senast redigerad av bithax 2016-09-02 kl. 22:37.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback